スキル unity-ecs-patterns
📦

unity-ecs-patterns

安全

Unity ECSパターンの実装

高性能なUnityゲームを構築するには、従来のOOPでは実現できないデータ指向の専門パターンが必要です。このスキルでは、DOTS、Jobs、Burstを使用して、何千ものエンティティにスケールするゲームのための本番環境向けECSパターンを提供します。

対応: Claude Codex Code(CC)
📊 69 十分
1

スキルZIPをダウンロード

2

Claudeでアップロード

設定 → 機能 → スキル → スキルをアップロードへ移動

3

オンにして利用開始

テストする

「unity-ecs-patterns」を使用しています。 現在の値と最大値を持つプレイヤー用のECSコンポーネントと、プレイヤーを持続的に回復するシステムを作成してください。

期待される結果:

  • コンポーネント定義:
  • ```csharp
  • public struct Health : IComponentData
  • {
  • public float Current;
  • public float Max;
  • }
  • ```
  •  
  • 回復システム:
  • ```csharp
  • [BurstCompile]
  • public partial struct HealthRegenSystem : ISystem
  • {
  • public void OnUpdate(ref SystemState state)
  • {
  • float deltaTime = SystemAPI.Time.DeltaTime;
  • float regenRate = 5f;
  •  
  • foreach (var health in
  • SystemAPI.Query<RefRW<Health>>())
  • {
  • health.ValueRW.Current = math.min(
  • health.ValueRO.Max,
  • health.ValueRO.Current + regenRate * deltaTime
  • );
  • }
  • }
  • }
  • ```

「unity-ecs-patterns」を使用しています。 オーサリングを使用してGameObjectをエンティティに変換するにはどうすればよいですか?

期待される結果:

  • 1. オーサリングMonoBehaviourを作成する:
  • ```csharp
  • public class EnemyAuthoring : MonoBehaviour
  • {
  • public float Speed;
  • public float Health;
  •  
  • class Baker : Baker<EnemyAuthoring>
  • {
  • public override void Bake(EnemyAuthoring authoring)
  • {
  • var entity = GetEntity(TransformUsageFlags.Dynamic);
  • AddComponent(entity, new Speed { Value = authoring.Speed });
  • AddComponent(entity, new Health { Current = authoring.Health, Max = authoring.Health });
  • }
  • }
  • }
  • ```
  •  
  • 2. エディタでGameObjectにオーサリングコンポーネントを追加する
  • 3. ベイクシステムは自動的にビルド時にエンティティに変換する

「unity-ecs-patterns」を使用しています。 各エンティティの半径内のすべての敵にダメージを与えるパラレルジョブを記述してください。

期待される結果:

これには空間ハッシュアプローチが必要です。まず、パラレルジョブで空間ハッシュマップを構築します。次に、隣接するセルをクエリしてダメージを適用する2番目のパスを実行します。空間ハッシュ関数は、一様分布のための素数乗算を使用します: `hash = x * 73856093 ^ y * 19349663 ^ z * 83492791`。

セキュリティ監査

安全
v5 • 1/21/2026

All 59 static findings are false positives. The skill contains Unity ECS documentation with code examples. Detected patterns (hash functions, system API references, backticks) are legitimate game development patterns and Markdown formatting, not security threats.

2
スキャンされたファイル
1,194
解析された行数
0
検出結果
5
総監査数
セキュリティ問題は見つかりませんでした
監査者: claude 監査履歴を表示 →

品質スコア

38
アーキテクチャ
100
保守性
87
コンテンツ
22
コミュニティ
100
セキュリティ
87
仕様準拠

作れるもの

パフォーマンスクリティカルなゲームを構築するインディーズゲームデベロッパー

ECSパターンを使用して、数千体の敵、パーティクル、またはユニットをパフォーマンス低下なしで処理する効率的なゲームシステムを作成します。

DOTSを学ぶゲームプレイプログラマー

ガイド付きの例とベストプラクティスを使用して、従来のUnity MonoBehaviourパターンからデータ指向のECSアーキテクチャに移行します。

パーティクルシステムを作成するテクニカルアーティスト

JobsとBurstコンパイルを使用して、GPUのようなパフォーマンスをCPUで実現する 대규모のパーティクルおよびエフェクトシステムを構築します。

これらのプロンプトを試す

基本的なECSコンポーネント
Unity ECSでISystemとBurstCompileを使用して、SpeedコンポーネントとMovementSystemを作成してください。システムは速度値に基づいてエンティティを前方に移動させる必要があります。
エンティティスポーンシステム
EntityCommandBufferを使用して、Spawnerコンポーネントを持つエンティティをランタイムに作成するSpawnSystemを記述してください。シングルスレッド版とパラレルジョブ版の両方を含めること。
アスペクトベースのキャラクター
Health、Speed、LocalTransformコンポーネントをグループ化するCharacterAspectを作成してください。シールド吸収ロジックを尊重するダメージ適用メソッドを含めること。
空間ハッシュシステム
効率的な衝突クエリのためのNativeParallelMultiHashMapを使用した空間ハッシュシステムを構築してください。ハッシュ関数と空間グリッドを更新するパラレルジョブを含めること。

ベストプラクティス

  • 最大のパフォーマンスとBurst互換性のためにISystemをSystemBaseの代わりに使用する
  • 最適なパフォーマンスのためにジョブとシステムに常に[BurstCompile]を適用する
  • 構造的変更(作成/破棄/追加)をEntityCommandBufferを使用して遅延させ、ジョブスケジュールの破損を回避する

回避

  • 管理対象タイプ(クラス、文字列、配列)をコンポーネントに追加しない。它们はBurstコンパイルを壊します
  • パラレルジョブ内で構造的変更を実行しない。代わりにEntityCommandBuffer.ParallelWriterを使用する
  • エンティティを1つずつクエリしない。エンティティクエリとToComponentDataArrayをバッチ操作に使用する

よくある質問

どのUnityバージョンがECSをサポートしていますか?
Unity 2022.2 LTS以降には安定したDOTSサポートがあります。パッケージマネージャーからEntitiesとBurstパッケージをインストールしてください。
ECSはMonoBehaviourとどう異なりますか?
ECSはデータ(コンポーネント)と動作(システム)を分離します。コンポーネントはメソッドのないシンプルな構造体です。システムにはロジックが含まれています。これにより、キャッシュに適したメモリレイアウトと並列処理が可能になります。
ECSと従来のGameObjectを混合できますか?
はい、Hybrid Rendererとオーサリングコンポーネントを使用してGameObjectをエンティティに変換できます。ランタイム相互作用には、SystemAPI.GetComponentをエンティティに使用し、ハイブリッドアプローチではGameObject操作を使用します。
Burstとは何ですか?なぜ使用するべきですか?
BurstはLLVMを使用してC#コードを最適化するコンパイラです。高度に最適化されたネイティブ機械コードを生成します。10倍以上のパフォーマンス向上のために、ジョブとシステムに常に[BurstCompile]を適用してください。
ECSはいくつのエンティティを処理できますか?
ECSは最新のハードウェアで100,000以上のエンティティを処理できます。パフォーマンスはキャッシュの局所性、効率、およびメルスレッドのボトルネックに依存します。プロファイリングして制限を特定してください。
アスペクトと直接コンポーネントアクセスのどちらを使用すべきですか?
アスペクトは、複数のシステム間で同じコンポーネント組み合わせをクエリする場合にコードの整理を改善します。シンプルなクエリには、SystemAPI.Queryを介した直接アクセスの方が明確です。

開発者の詳細

ファイル構成

📄 SKILL.md