2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

どっと沸く?DOTween

Last updated at Posted at 2017-12-11

どうも。またまた専門学校界の旅キチ(自称)です。

今回は、unityでアニメーションを扱う上で革命的なアセットである、
DOTweenを紹介したいと思います。

#DOTweenとは
DOTweenとは、unityでのアニメーションをサポートしてくれるアセットである。
従来、オブジェクトのアニメーションを行うには、毎フレーム実行される関数の中で、経過時間と連動させて行うというのが一般的であった。

例えば、あるオブジェクトを1秒掛けてX方向に座標値にして10移動したい場合があったとする。
従来では、このように記述された。

/* このスクリプトは動かすオブジェクトにアタッチされているとする */
int count = 0;
void update()
{
	// unityは毎秒30フレームで動作している
	if(count < 30)
	{
		Vector3 pos = transform.localposition;
		
		// Time.deltaTimeには前フレームからの経過時間が格納されている
		pos.x += 10.0f * Time.deltaTime;
		transform.localposition = pos;
		count++;
	}
}

このように、オブジェクトと動かすために、経過時間等も管理する必要があった。
何より、移動が終われば用が無いにも関わらず毎フレームupdate関数が呼ばれるのも無駄が多い。

これを解決してくれるのがDOTweenである。
DOTweenを利用して先ほどの処理を記述すると、このようになる。

using DG.Tweening;

// この関数はアニメーションを実行する際に1回だけ呼ばれればいい
public void Trigger()
{
	transform.DOLocalMove(new Vector3(10, 0, 0), 1.0f);
}

…たったの1行?そう、たったの1行である。
DOTweenならば内部で時間管理も自動的に行ってくれるので、こちら側で指定するのは、基本的に
transform.DO~~~(変更後のパラメータ, アニメーション時間);
という指定だけでよい。

この他にも便利なものは多数あるが、そちらの紹介は既に多数紹介されている方々に任せる。

最後に、こちらのDOTweenのダウンロードはこちら。
https://www.assetstore.unity3d.com/jp/#!/content/27676

アセットの活用で、良いunityライフを。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?