DOTWEEN ► Tween startup failed (NULL target/property – ): the tween will now be killed

最近の DOTWEEN を使うとこのような警告を見たことがあるかもしれません。

無視してても一見動作している(ように見える)のですが、これは結構危険な警告です。
unity2017 の頃は警告がなかった気もしますが、あえて表示するようにしたのもそのせいでしょう。

なお、DOTWEEN 設定パネルの Preferences Safe Mode のチェックを外すと、この警告はエラーに変化します。(ビルドでは確認していませんが、エラーになるのかも)

この警告をなくすには?

DOTween が動作している状態で(DOTween の動作している)GameObject Destroy すると、このエラーが表示されるので、Destroy する際に DOTween を Kill すれば回避可能です。

警告出せるなら、自動的に Kill してくれればいいのに…という考えは置いといて。

Tween     tw;

void OnDestroy()
{
    // Destroy 前に Tween を Kill
    if (tw != null)
    {
        tw.Kill(false);
        tw = null;
    }
}

public void ExecAnimation()
{
    // ExecAnimation が複数回呼ばれると前の Tween を追えなくなるので、ここで一旦 Kill
    if (tw != null)
    {
        tw.Kill(false);
        tw = null;
    }
    tw = DOTween.To(
        () => gameObject.transform.position,
        v => { transform.position = v; },
        new Vector3(0, 0, 1),
        0.5f
    )
    .SetRelative()
    .SetEase(Ease.OutCubic)
    .OnComplete( () => tw = null );
}

追記:もっといい方法がありました。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA