Unityのシーン描画や物理エンジンの処理を阻害しないように並列で動作する非同期処理としてコードを書く。
非同期処理には以下の実装がある。状況に応じた適切なものを確認しておくとよい。
Unity 標準 : コルーチン(coroutine) Invoke Awaitable
Unity 拡張 : UniRx UniTask
C# : async/await
参考
async/await,disposableを使って素直で読みやすいコードを書く
GP08で紹介したコルーチンによる非同期処理とは別の手法を紹介する。
Unity6の標準非同期処理。今後これがメインになるのかもしれない。
要調査。現状(2024.12)UniTaskなど非公式非同期処理パッケージに比べて低機能である模様。
外部パッケージをGithubからダウンロードしてUnityに追加する。
Unityのゲーム向けのタスク処理ライブラリが利用できる。
複数の非同期処理を便利に扱える。
提供元: cygameのエンジニア Cygames Engineers' Blog
C#の非同期処理を利用する。専用の構文を利用してコルーチンより多少わかりやすく記述できる。
コルーチンと違って非同期処理の結果も取得できる。
PlayerControllerをasync/await方式に書き換えた例