(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


async/awaitでDoTweenの終了を待つ事が出来る AsyncWaitForCompletion【Unity】【DOTween】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2022.2.8f1
DOTween Pro 1.0.335


はじめに

Unityで位置や大きさなどのアニメーション、

いわゆるTweenを実装するアセットとしてお馴染みのDOTweenでは、

https://assetstore.unity.com/packages/slug/32416?aid=1101lGoY


OnCompleteを使うことでTweenの終了後に処理をする事が可能です。

Debug.Log($"移動開始");

//Tweenで移動、移動後にログ表示
transform.DOMove(new Vector3(1, 0, 0), 1).OnComplete(() => {
  Debug.Log($"移動終了");
});


ただ場合によってはasync/awaitで終了を待ちたいという場合もあります。

そんな時に使えるのがAsyncWaitForCompletionで、

名前の通りasync/awaitでTweenが終わるまで待つ事が出来ます。(KillやCompleteした時でも待機終了)

private async void Start() {
  Debug.Log($"移動開始");
    
  //Tweenで移動して、終わるまで待つ
  await transform.DOMove(new Vector3(1, 0, 0), 1).AsyncWaitForCompletion();

  Debug.Log($"移動終了");
}


ちなみにKillされるまで待つAsyncWaitForKillや、

指定回数ループするまで待つAsyncWaitForElapsedLoopsなどもあります。