Posted at

UnityのDOTweenで無限ループをKillしたりStartしなおすと不自然になっちゃう?

More than 1 year has passed since last update.

DOTween便利ですよね。

http://dotween.demigiant.com/

tweener.SetLoops(-1) すると無限ループできるわけですが、

この時、ループしてるtweenのプロパティを再設定したいなとか思うじゃないですか。

var duration = 1f;

var tweener = transform.DORotate(new Vector3(0,0,-359.9f), duration).SetLoops(-1).Play();

tweener.Kill();
duration = 2f;
tweener = transform.DORotate(new Vector3(0,0,-359.9f), duration).SetLoops(-1).Play();

なんか無限ループのつなぎ目がうまく繋がらなくなる…!

のは、tweenerをkillしたからと言って、プロパティはリセットされないからでした。

var duration = 1f;

var tweener = transform.DORotate(new Vector3(0,0,-359.9f), duration).SetLoops(-1).Play();

tweener.Kill();

// reset property
transform.localRotation = Quaternion.Euler(0, 0, 0);

duration = 2f;
tweener = transform.DORotate(new Vector3(0,0,-359.9f), duration).SetLoops(-1).Play();