はじめに
聞き覚えのある非同期処理たちを、改めて理解を深めるべくここにまとめていきたいと思います。
(2024/10/28最終更新)
歴史
用語集
- Task
- UniTask
- UniRx
- await/async
- coroutine
- IEnumerator
- yield return
- startCoroutine
Coroutine
通常のコードでは1フレーム分でメソッドを完了してしまうが、不便な時がある。Coroutineは1フレーム分の呼び出しで作業を完了させず、複数のフレームにまたがって処理をすることができる1。
脚注のUnity公式の例がすごくわかりやすかったので参考にしましょう。
複数フレームにわたってフェードアウトさせたいオブジェクトがあったとします。UpDate関数を使わず、Start関数などから呼び出す場合はFor文でフェードを回していても1フレームで完了してしまうため、すぐに消えてしまいます。
Coroutineを使って複数フレームで処理すれば、1フレームで部分的にフェードさせることができ、徐々にフェードさせることができます。
制約としてコルーチンを「含む」関数には”IEnumerator”を先頭にかき、”yield return”を中断させる部分に含ませます。
その関数を「呼び出す」ときに”StartCoroutine()”関数を使って関数を呼び出します。
単語の意味としてはCo + routineで 協調+ルーティン 複数のフレームで協調して処理をするイメージ。