コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】DOTween で IndexOutOfRangeException: Index was outside the bounds of the array.

概要

using Cysharp.Threading.Tasks;
using DG.Tweening;
using UnityEngine;

public class Example : MonoBehaviour
{
    private Tween m_tween;

    private async UniTaskVoid Update()
    {
        if ( Input.GetMouseButtonDown( 0 ) )
        {
            Debug.Log( "開始" );
            m_tween?.Kill(); // ★
            m_tween = transform.DOMoveX( 1, 1 );
            await m_tween;
            m_tween.Kill();
            m_tween = null;
            Debug.Log( "終了" );
        }
    }
}

上記のようなコードを実装して左クリックを連打すると

IndexOutOfRangeException: Index was outside the bounds of the array.
DG.Tweening.Core.TweenManager.RemoveActiveTween (DG.Tweening.Tween t) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__DOTween/_DOTween.Assembly/DOTween/Core/TweenManager.cs:1164)
DG.Tweening.Core.TweenManager.Despawn (DG.Tweening.Tween t, System.Boolean modifyActiveLists) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__DOTween/_DOTween.Assembly/DOTween/Core/TweenManager.cs:236)
DG.Tweening.TweenExtensions.Kill (DG.Tweening.Tween t, System.Boolean complete) (at D:/DG/_Develop/__UNITY3_CLASSES/_Holoville/__DOTween/_DOTween.Assembly/DOTween/TweenExtensions.cs:145)
Example.Update () (at Assets/Example.cs:14)

上記の例外が発生する