DoTweenで無限ループが実行されない!そんな時に確認すべきこと
はじめに
DoTweenでSetLoops(-1)
と書くと無限ループになると思います。ですが、無限ループが実行されずにエラーも出ないという状況になる場合があります。
というわけで、早速その場合について見ていきましょう。
無限ループが実行されるコード
まず、無限ループが実行される場合について見ておきましょう。
以下のようなコードでは無限ループが正常に動きます。
gameObject.transform.DOMove (new vector3(1f, 1f, 1f), 1f) .SetLoops (-1);
無限ループが実行されないコード
では、無限ループが実行されない場合について見てみましょう。
Sequence seq = DOTween.Sequence(); seq.Append( gameObject.transform.DOMove(new vector3(1f, 1f, 1f), 1f) .SetLoops(-1) );
何がダメなのか
コードが明らかに違うので分かりやすいかもしれませんが、Sequence
内では無限ループは実行されません。なので、Sequence
外で無限ループを実行してあげれば解決します。
おわりに
実は公式ドキュメントに書いてある内容です。笑
私は英語がてんでダメなのでハマってしまいました...なので、同じように英語が苦手な方の助けになれば幸いです!
参考:公式で言及している部分のスクショ↓↓