unity-async について
unity-async は、Unity ランタイム処理のスケジューリングと後始末を選ぶためのドキュメントスキルです。イベント、コルーチン、UniTask、Update を比較し、ライフサイクル管理とキャンセルも扱います。
主な機能
- 01イベント、コールバック、明示的呼び出しの選択
- 02短い処理でのコルーチン選択
- 03UniTask を使う条件の判断
- 04継続ループでの Update の利用
- 05ライフサイクル管理とキャンセルの指針
活用シーン
- 01Unity タスクの実行方式の選定
- 02キャンセルと後始末の計画
- 03不要な毎フレーム Update の削減
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ besty0728/ unity-skills --skill unity-asyncインストール後、Claude Code で/unity-asyncを入力して読み込まれたか確認します。
詳細
このモジュールのスキルを呼び出す前に: 名前や説明から推測したパラメーターを使ってスキルを呼び出そうとしている場合は、いったん停止してください。まずこのファイルを読むか、
GET /skills/recommend?includeSchema=trueでスキーマを取得してください。recommend/schema ですでにパラメーター定義を確認している場合は、そのまま dryRun に進んでかまいません。
トリガー
- Update/コルーチン/UniTask/タイマーの選択
- キャンセルとクリーンアップの処理
- Update/コルーチン/UniTask/タイマーの選択、キャンセルとクリーンアップの処理
Unity 非同期処理の方針
対象範囲:このモジュールで扱うのは、Unity ランタイムに記述する非同期コード(
Update、コルーチン、UniTask、キャンセル、ライフサイクル上の所有権)です。REST プロトコル自体の非同期ジョブは対象外です。jobId/ポーリング/job_status/GET /jobs/{id}については、batch を参照してください。
ランタイム処理のスケジュール設定やクリーンアップの方法をユーザーが決める際に、このスキルを使用してください。
ガードレール
モード:ドキュメントのみです。制限対象となる REST スキルはありません。どの動作モード(Approval/Auto/Bypass)でも自由に読み込めます。
- コルーチンより高度に見えるという理由だけで、
UniTaskを推奨しないでください。 - ユースケースに合った、最もシンプルなスケジューリングモデルを優先してください。
判断の手順
- まず、そのタスクで毎フレームの処理が本当に必要かを確認します。
- 必要でない場合は、イベント、コールバック、または明示的なメソッド呼び出しを優先します。
- Unity に紐づく短い一連の処理が必要な場合は、コルーチンを優先します。
UniTaskを推奨するのは、次のいずれかに該当する場合に限ります。- プロジェクトですでに使用している場合
- ユーザーが明示的に希望し、依存関係の追加を受け入れる場合
- イベント駆動にできない真の連続シミュレーション、ポーリング、または入力ループに限り、
Updateを使用します。
個別の指針
- よりイベント駆動のフローで対応できる場合は、無関係な
Updateメソッドを多数作らないでください。 - 頻繁に実行される処理で使う参照はキャッシュしてください。
- ライフサイクル上の所有権を必ず明確にしてください。
- 誰が処理を開始するか
- 誰がキャンセルまたは停止するか
- いつクリーンアップするか
MonoBehaviourでは、登録と解除を対称に行うため、OnEnable/OnDisable/OnDestroyを優先してください。IDisposableは主に、純粋な C# のライフタイム、一時的なサブスクリプション、またはスコープベースのクリーンアップヘルパーに使用してください。Unity のライフサイクルメソッドの代わりに、慣例だけで使用しないでください。
出力形式
- 推奨するスケジューリングモデル
- 適している理由
- ライフサイクル/キャンセルの所有者
- 頻繁に実行される処理でのリスク
- 該当する場合は、より複雑な代替手段が不要な理由
コメント
Markdown 対応