【DOTween】DOPath系の初期値と目的地が同じだとエラーが出る

DOTweenのPath系の関数を使うときに次のようなエラーが出ました。

IndexOutOfRangeException: Index was outside the bounds of the array.
DG.Tweening.Plugins.Core.PathCore.CubicBezierDecoder.GetPoint (System.Single perc, UnityEngine.Vector3[] wps, DG.Tweening.Plugins.Core.PathCore.Path p, DG.Tweening.Plugins.Core.PathCore.ControlPoint[] controlPoints) (at <00000000000000000000000000000000>:0)

このエラーが発生する原因は、オブジェクトの現在の位置(transformのPositionプロパティ)と、DOTweenのDOPathメソッドで設定された目的地が同じであるためです。 例えば、目的地を(200, 0, 0)と指定している場合、オブジェクトのtransformの初期値のいずれかの軸に同じ値が設定されていると、エラーが発生します。

transform.DOLocalPath(new Vector3[] { new Vector3(200, 0, 0), new Vector3(0, 100, 0), new Vector3(100, 0, 0) }, 1.0f, PathType.CubicBezier);

解決方法

初期値を変更するか、目的地を増やすなどする。