UniTaskとは
UniTaskはCysharp社が提供するUnity用のC#ライブラリです。C#にはTaskという仕組みが既にありますが、UniTaskはUnity用に諸々最適化されたものだそうです。Unityにおける非同期処理は基本的にUniTaskで書けるはずです。
導入方法
いろいろな方法がありますが、個人的には下記に示すやり方が一番簡単でわかりやすいと思います。
Edit > Project Settings...
から Project Settingsを開きます。
項目に Package Manager
があるので選択します。ここで、
- Name
- わかりやすい名前。なんでも良い
- URL
- Scope(s)
- com.cysharp.unitask
と入力し Apply
を押します。
これでUnityがUniTaskをダウンロードしてくれます。ロードが終わるまでしばらくお待ちください。
UniTaskの使用例
UniTaskを導入すると、ゲームでよく使う処理を簡単に書けるようになります。当然コルーチンでもかけますが、UniTaskの方がパフォーマンスが出ます。ここでよく使う 〇〇を待つ
シリーズ3点を紹介します。
3秒待つ
await UniTask.Delay(System.TimeSpan.FromSeconds(3.0f))
条件がtrueになるまで待つ
await UniTask.WaitUntil(() => initialized);
条件がtrueの間待つ
await UniTask.WaitWhile(() => IsPlaying, PlayerLoopTiming.Update);
その他
openupmからはいろいろと便利なライブラリを導入することができます。自分はプロジェクトを作った最初に UniTask, UniRx, ZString の3つを導入しています。
- Name
- OpenUPM
- URL
- Scope(s)
- com.cysharp.unitask
- com.neuecc.unirx
- com.cysharp.zstring