はじめに
DoTweenの無限ループの止め方についてかるーくまとめてみました。
またそのついでに私も最近知ったのですが、DoTweenで遅延処理ができるみたいです。
おまけとしてそちらも紹介していきたいと思います。
遅延処理
無限ループを知りたいと思っているみなさん、申し訳ありません。
最初に遅延処理について説明したいと思います。
遅延処理はこれで書けます。
DOVirtual.DelayedCall( 2.5f, // 遅延させる(待機する)時間 () => { // こちらに実行する処理 } );
無限ループの止め方
無限ループを止めるにはPauseメソッドを用いる方法とKillメソッドを用いる方法があります。
ただ、また再生可能ということで今回はPauseメソッドを使っていきたいと思います。
一番重要なところはこれになります。
tweener.Pause();
このtweenerという変数はTweenerというクラスの変数です。
これを用いて簡単な無限ループの回転を2.5秒後に止めるスクリプトを作ってみました。
using UnityEngine; using DG.Tweening; //ここを追加してDoTweenを使う public class DoTweenTest : MonoBehaviour { Tweener tweener; //ここにDoTweenの情報を入れる [SerializeField] GameObject obj; void Start () { //回転を無限ループさせる tweener = obj.transform.DOLocalRotate(new Vector3(0, 180, 0), 1) .SetLoops(-1,LoopType.Yoyo); //2.5秒後にPauseRotationを呼び出す DOVirtual.DelayedCall( 2.5f, () =>{ PauseRotation(); } ); } public void PauseRotation(){ //ここで無限ループを止める tweener.Pause(); } }
このobjになにかのGameObjectをアタッチしてみてください。
きっと回転した後に2.5秒後に止められるはずです!
さいごに
今回はDoTweenの無限ループについて勉強しました。
ただ私としてはDoTweenの遅延処理に一番驚いていて、わざわざ自分で実装していたことが悔やまれます。