UnityでDoTweenの終了をUniTaskで待ち受ける

UniTaskでDoTweenを待ち受けできるようにするには、下準備が必要なことは、いろいろなサイトや書籍でも書かれていたので知っていたが、逆に、下準備をしなくても待ち受けができるような感じがしたので、メモとして残しておきたいと思います。 “UnityでDoTweenの終了をUniTaskで待ち受ける” の続きを読む

WebGLでシーン遷移の時にDoTweenを使っていたらエラーで動かなくなった!!

以下のサイトに完全に答えが書いてありました!!

https://unity-yuji.xyz/scene-load-transition-dotween-webgl/

ちなみに、シーンはLoadSceneAsyncであらかじめロードしておき、allowSceneActivationをfalseにしておいて、シーン遷移の時にtrueにすることで遷移していました。

ちなみにUnity Editorではエラーは発生せず、WebGLでシーン遷移すると以下のようなエラーが出て止まります。
【自分が選んだ直し方】
SequenceをOnDisable関数の中で「Kill」して削除する。
ちなみに、OnDisable関数はシーン遷移する直前に必ず呼ばれるみたい。

【参考コード】
public class MoveArrowController : MonoBehaviour
{
    public float endValue;
    public float duration;

    private Sequence seq; // シーケンス
    
    // Start is called before the first frame update
    void Start()
    {
        seq = DOTween.Sequence();

        seq.Append(this.transform.DOLocalMoveX(endValue, duration).SetLoops(-1, LoopType.Yoyo)
            .SetEase(Ease.InOutQuad));

    }
    
    private void OnDisable()
    {
        seq.Kill(); // これを書かないとエラー
    }
}
© 2024 Husky Studios, All rights reserved.