【Unity】UniTaskを導入する

UniTaskとは

UniTaskはCysharp社が提供するUnity用のC#ライブラリです。C#にはTaskという仕組みが既にありますが、UniTaskはUnity用に諸々最適化されたものだそうです。Unityにおける非同期処理は基本的にUniTaskで書けるはずです。

github.com

導入方法

いろいろな方法がありますが、個人的には下記に示すやり方が一番簡単でわかりやすいと思います。 Edit > Project Settings... から Project Settingsを開きます。

項目に Package Manager があるので選択します。ここで、

と入力し 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つを導入しています。