【Unity】UniTaskで直列処理をする場合

複雑な非同期処理を行うときに色々考えたことをメモ代わりに書いていきたいと思います。

直接処理

単純にawaitを処理順に並べると、順番に対象の処理を行います。

private async UniTaskVoid Start()
{
     await Method1Async();
     await Method2Async();
}

private async UniTask Method1Async()
{
    // ここにtask1の処理を書く
    await UniTask.Delay(1000); // 例として1秒待つ処理を書く
}
private async UniTask Method2Async()
{
    // ここにtask2の処理を書く
    await UniTask.Delay(2000); // 例として2秒待つ処理を書く
}

Concatwithを使う

await Method1Async().ContinueWith(async _ => await Method2Async());

UniTask

github.com