Unity向けの高性能・アロケーションフリーなTweenライブラリ。1行のコードでプロパティのアニメーションや遅延、シーケンスを実行できます。
Cysharp/UniTask
Unityの非同期操作、コルーチン、PlayerLoopのタイミングをawait可能にする、アロケーションフリーなasync/await連携。
- スター
- 11,256
- フォーク
- 1,012
- 未解決の Issue
- 26
- 最終コミット
- 13 日前
これは何?
UniTaskは、Unity向けのタスク型とasync/await連携を提供します。標準のTaskに代わる選択肢として、ゼロアロケーションを目指した、独自のasyncメソッドビルダーを備える構造体ベースのUniTask<T>を提供します。UnityのAsyncOperations、コルーチン、UnityWebRequestのリクエストを直接awaitできるほか、Yield、Delay、DelayFrameによるフレーム単位の待機で、よくあるコルーチンのパターンを置き換えられます。
ライブラリはスレッドではなくUnityのPlayerLoop上で動作するため、WebGLやWASMなどのプラットフォームでも利用できます。また、CancellationTokenによるキャンセルやタイムアウト、await可能なストリームまたは非同期列挙可能なストリームとして扱えるMonoBehaviourのメッセージイベントやuGUIイベント、ChannelやAsyncReactivePropertyを使った非同期LINQにも対応しています。TaskTrackerエディターウィンドウを使えば、リークしたタスクを見つけられます。
UniTaskの利用には、C# 7.0のtask-like builderをサポートするUnity 2018.3以降が必要です。UPMのgit URL、またはリリース版のunitypackageからインストールできます。
主な機能
- 01ゼロアロケーションを目指した、独自のasyncビルダーを備える構造体ベースのUniTask<T>。
- 02AsyncOperation、UnityWebRequest、IEnumeratorコルーチンを直接await可能。
- 03PlayerLoopベースのYield、Delay、DelayFrameで、よくあるコルーチンの待機処理を置き換え。
- 04スレッドを使わずPlayerLoop上で動作するため、WebGLやWASMに対応。
- 05CancellationToken、タイムアウト用ヘルパー、リークのデバッグに使えるTaskTrackerエディターウィンドウ。
- 06非同期ストリーム向けの非同期LINQ、Channel、AsyncReactiveProperty。
ユースケース
- Unityゲームのコルーチンをasync/awaitコードに置き換える。
- Unity内でアセットやシーンを読み込んだり、Webリクエストを順次または並行して実行したりする。
- スレッドを利用できないWebGLをターゲットとするUnityプロジェクトを構築する。
- uGUIのボタンクリックやMonoBehaviourのイベントを、await可能な非同期ストリームに変換する。
トピック
よくある質問
- UniTask とは?
- Unityの非同期操作、コルーチン、PlayerLoopのタイミングをawait可能にする、アロケーションフリーなasync/await連携。 UniTaskは、Unity向けのタスク型とasync/await連携を提供します。標準のTaskに代わる選択肢として、ゼロアロケーションを目指した、独自のasyncメソッドビルダーを備える構造体ベースのUniTask<T>を提供します。UnityのAsyncOperations、コルーチン、UnityWebRequestのリクエストを直接awaitできるほか、Yield、Delay、DelayFrameによるフレーム単位の待機で、よくあるコルーチンのパターンを置き換えられます。
- UniTask は無料で使えますか?ライセンスは?
- UniTask は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- UniTask は今もメンテナンスされていますか?
- 活発にメンテナンス中。UniTask の最終コミットは 2026年10月6日 です。
- UniTask は何に使えますか?
- Unityゲームのコルーチンをasync/awaitコードに置き換える。 Unity内でアセットやシーンを読み込んだり、Webリクエストを順次または並行して実行したりする。 スレッドを利用できないWebGLをターゲットとするUnityプロジェクトを構築する。 uGUIのボタンクリックやMonoBehaviourのイベントを、await可能な非同期ストリームに変換する。
- UniTask はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/Cysharp/UniTask
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
ゲーム内の会話を実行する、Yarn Spinner公式のUnity連携パッケージ。
AIエージェントがMCPツールや生成されたスキルを通じてUnityを操作できる、Unity Editor・ランタイム向けプラグイン。
Unity向けのuGUIベースのゲーム内コンソール。実行時ログを表示し、ビルド上で登録済みのデバッグコマンドを実行できます。
ゲーム開発をスタジオのように進めるための、49のAIエージェントなどを備えたClaude Codeテンプレート。
トップダウンゲームの経路探索向けに、TilemapやSprite、Collider2Dから2Dナビゲーションメッシュを生成するUnity拡張です。