Unity+UnrealEngine4+Blog.

UnityやUnrealEngine4とかについて学習したことを書いてます

DOTweenでオブジェクトのポジションを滑らかに移動する

DOTweenでオブジェクトのポジションを滑らかに移動する方法です。

 

導入方法は以前記事にしました。↓ やはりかなり使えるアセットですね・・

nabesi777.hatenablog.com

 

 

今回はイベント発生時に、オブジェクトのポジションを目的のポジションまで移動させる為に使用しました。

 

普通にやる場合↓ カメラのポジションを取得して、objのポジションへ適用させます。( + _setPositionXで細かいPositionを調整)

_cameraPos = _mainCamera.transform.position;

_obj.transform.position = new Vector3 (_cameraPos.x + _setPositionX, _cameraPos.y      + _setPositionY, _cameraPos.z + _setPositionZ);

 

再生するとこのような感じになります。

f:id:nabesi777:20190303001738g:plain

 

イベントが発生するとパッ!と目的地に飛びます。

 

これをDOTweenを使って書いてみます。

内容はすべて同じですが、「3秒かけて目的地まで移動させる」というのを追加します。

 

オブジェクトのワールド座標のポジション移動はDOMove()を使用します。

ローカル座標を変更させるのはDOLocalMove()を使用します。

 

_cameraPos = _mainCamera.transform.position;

//第一引数へ移動先の座標、第二引数へ移動時間を入れる

_obj.transform.DOMove(
   new Vector3 (_cameraPos.x + _setPositionX, _cameraPos.y + _setPositionY,              _cameraPos.z + _setPositionZ),
   3f  
);

 

動かすとこのようになります。

f:id:nabesi777:20190303002511g:plain

 

自然に移動してくれるようになりました。

 

参考にさせて頂いたサイト様

DOTweenの自分用メモ · GitHub