DotweenでTextMeshProのオブジェクトをフェードアウト後、コールバックでオブジェクト削除という処理を行いたかったのですが、なぜかフェードアウトもオブジェクト削除もされません。
.Append(multiAni.GetComponent<CanvasGroup>().DOFade(0, 0.8f)) .AppendCallback(() => { Destroy(multiAni); });
まず、コールバックを消してもフェードアウトされなかったので、フェードアウト処理部分に問題があるようです。
そして調べたところ、CanvasGroupをオブジェクトにアタッチしていなかったのに気付いて(アタッチしていなくてもコンパイルエラーも実行時例外も起きません)アタッチしましたが、それでも状況は変わりませんでした(TextMeshはCanvasGroupのアルファの影響を受けません)。
次に、CanvasGroupをTextMeshProUGUIに変えたのですが、それでも状況は変わりません。よくよく考えてみると、普段は2Dオブジェクトを使ってアニメーションさせていたのですが、今回は3Dオブジェクトです。その場合、クラスはTextMeshProUGUIではなくTextMeshProになります。
最終的にTextMeshProクラスに編集し直したところ、無事にフェードアウトもオブジェクト削除もされました。
自分の不注意なのですが、オブジェクトにアタッチされていないコンポーネントの処理を書いても実行時例外が出ないのは困るなあと思ったのでした。
コメント