(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発した新作VRソフトです!


1ドットずつ動くような整数の座標移動にはsnappingを有効にしたDO(Local)Move【Unity】【DOTween】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2020.3.11f1


はじめに

今回はUnityで位置や大きさなどのアニメーション、

いわゆるTweenを実装するアセットとしてお馴染みのDOTweenを使って、

DOTween Pro | Visual Scripting | Unity Asset Store


1ドットずつ動くような整数の座標移動を実装する方法の紹介記事です!

f:id:kan_kikuchi:20210719130341g:plain



snapping

まず、普通にDOMoveを実行すると座標は小数点以下も使ってスムーズに移動します。

transform
  .DOMove(new Vector3(20f, 0, 0), 5f)//x20まで5秒で移動
  .SetEase(Ease.Linear)//イージングなしの等速移動に
  .SetLoops(-1);//無限ループ
f:id:kan_kikuchi:20210719130609g:plain


これを整数の座標移動にしたい場合は

DO(Local)Moveの第3引数であるsnappingをtrueにするだけ。(デフォルトではfalse)

transform
  .DOMove(new Vector3(20f, 0, 0), 5f, snapping:true)//x20まで5秒で移動(※座標は整数のみを通る)
  .SetEase(Ease.Linear)//イージングなしの等速移動に
  .SetLoops(-1);//無限ループ
f:id:kan_kikuchi:20210719130341g:plain


ちなみに座標1辺り1ドットにするにはPixels Per Unitに1ドットの大きさ(1辺の画素数)を設定します。

なお、ドット絵がボヤける場合はFilter ModeをPoint(no filter)にしましょう。

f:id:kan_kikuchi:20210719125435j:plain