📈UnirxとunitaskでUnity非同期プログラミングを行う
。
UniRx:
概要: UniRxは、Reactive Extensions (Rx) のUnity用の実装です。Reactive Extensionsは、非同期プログラムやイベントベースのプログラムを扱うためのライブラリです。UniRxは、これをUnityエンジンに最適化し、Unityのイベントシステム、コルーチン、などと統合しています。
特長:
Observable シーケンス: コレクション、イベント、プロパティの変更など、さまざまなデータソースをObservable シーケンスとして扱うことができます。
LINQ スタイルの操作: Observable シーケンスに対して、LINQスタイルの操作を行うことができます。
Scheduling: UniRxは、UnityのMainThread、Coroutine、ThreadPoolなど、異なるスレッドでの実行をサポートしています。
UniTask:
概要: UniTaskは、Unityのための軽量な非同期プログラミングライブラリです。Unityのコルーチンは非常に便利ですが、パフォーマンスが良くないという問題があります。UniTaskは、この問題を解決し、よりパフォーマンスの良い非同期処理を提供します。
特長:
async/await 対応: C#のasync/awaitキーワードを使用した非同期プログラムを書くことができます。
Zero Allocation: UniTaskは、ガベージコレクションのオーバーヘッドを減らすため、余計なメモリ確保を行いません。
Integration with Unity: UnityのUpdate, FixedUpdate, LateUpdate, WaitForEndOfFrame, などのライフサイクルイベントをawaitできます。