Fähigkeiten unity-ecs-patterns
📦

unity-ecs-patterns

Sicher

Unity ECS Patterns implementieren

Der Aufbau leistungsstarker Unity-Spiele erfordert spezialisierte datenorientierte Muster, die traditionelle objektorientierte Programmierung nicht bieten kann. Dieser Skill liefert produktionsreife ECS-Muster mit DOTS, Jobs und Burst fĂĽr Spiele, die auf Tausende von Entities skalieren.

UnterstĂĽtzt: Claude Codex Code(CC)
📊 69 Angemessen
1

Die Skill-ZIP herunterladen

2

In Claude hochladen

Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen

3

Einschalten und loslegen

Teste es

Verwendung von "unity-ecs-patterns". Create an ECS component for player health with current and max values, and a system that heals players over time.

Erwartetes Ergebnis:

  • Komponentendefinition:
  • ```csharp
  • public struct Health : IComponentData
  • {
  • public float Current;
  • public float Max;
  • }
  • ```
  •  
  • Heilungssystem:
  • ```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
  • );
  • }
  • }
  • }
  • ```

Verwendung von "unity-ecs-patterns". How do I convert a GameObject to an entity with authoring?

Erwartetes Ergebnis:

  • 1. Authoring-MonoBehaviour erstellen:
  • ```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. Authoring-Komponente zu einem GameObject im Editor hinzufĂĽgen
  • 3. Das Baking-System konvertiert es automatisch zur Build-Zeit in eine Entity

Verwendung von "unity-ecs-patterns". Write a parallel job that damages all enemies in a radius around each entity.

Erwartetes Ergebnis:

Dies erfordert einen Spatial-Hash-Ansatz. Erstellen Sie zunächst eine Spatial-Hash-Map in einem parallelen Job. Führen Sie dann einen zweiten Durchgang aus, der benachbarte Zellen abfragt und Schaden anwendet. Die Spatial-Hash-Funktion verwendet Primzahlmultiplikation für gleichmäßige Verteilung: `hash = x * 73856093 ^ y * 19349663 ^ z * 83492791`.

Sicherheitsaudit

Sicher
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
Gescannte Dateien
1,194
Analysierte Zeilen
0
befunde
5
Gesamtzahl Audits
Keine Sicherheitsprobleme gefunden
Auditiert von: claude Audit-Verlauf anzeigen →

Qualitätsbewertung

38
Architektur
100
Wartbarkeit
87
Inhalt
22
Community
100
Sicherheit
87
Spezifikationskonformität

Was du bauen kannst

Indie-Spieleentwickler erstellt leistungskritische Spiele

Effiziente Spielsysteme erstellen, die Tausende von Gegnern, Partikeln oder Einheiten ohne LeistungseinbuĂźen mit ECS-Mustern verarbeiten.

Gameplay-Programmierer lernt DOTS

Ăśbergang von traditionellen Unity MonoBehaviour-Mustern zu datenorientierter ECS-Architektur mit angeleiteten Beispielen und Best Practices.

Technical Artist erstellt Partikelsysteme

Massive Partikel- und Effektsysteme erstellen, die parallel mit Jobs und Burst-Kompilierung für GPU-ähnliche Leistung auf der CPU verarbeitet werden.

Probiere diese Prompts

Grundlegende ECS-Komponente
Create a Speed component and a MovementSystem in Unity ECS using ISystem and BurstCompile. The system should move entities forward based on their speed value.
Entity-Spawning-System
Write a SpawnSystem that uses EntityCommandBuffer to create entities at runtime with a Spawner component. Include both single-threaded and parallel job versions.
Aspect-basierter Charakter
Create a CharacterAspect that groups Health, Speed, and LocalTransform components. Include a method to apply damage that respects shield absorption logic.
Spatial-Hash-System
Build a spatial hashing system using NativeParallelMultiHashMap for efficient collision queries. Include the hash function and parallel job for updating the spatial grid.

Bewährte Verfahren

  • ISystem statt SystemBase fĂĽr maximale Leistung und Burst-Kompatibilität verwenden
  • [BurstCompile] immer auf Jobs und Systeme anwenden fĂĽr optimale Leistung
  • Strukturelle Ă„nderungen (create/destroy/add) mit EntityCommandBuffer aufschieben, um Job-Scheduling nicht zu unterbrechen

Vermeiden

  • Vermeiden Sie das HinzufĂĽgen verwalteter Typen (Klassen, Strings, Arrays) zu Komponenten, da diese die Burst-Kompilierung unterbrechen
  • FĂĽhren Sie keine strukturellen Ă„nderungen innerhalb paralleler Jobs durch; verwenden Sie stattdessen EntityCommandBuffer.ParallelWriter
  • Vermeiden Sie die Abfrage von Entities einzeln; verwenden Sie Entity-Queries und ToComponentDataArray fĂĽr Batch-Operationen

Häufig gestellte Fragen

Welche Unity-Version unterstĂĽtzt ECS?
Unity 2022.2 LTS und neuer haben stabile DOTS-UnterstĂĽtzung. Installieren Sie die Entities- und Burst-Pakete ĂĽber den Package Manager.
Wie unterscheidet sich ECS von MonoBehaviour?
ECS trennt Daten (Komponenten) von Verhalten (Systeme). Komponenten sind einfache Structs ohne Methoden. Systeme enthalten Logik. Dies ermöglicht cache-freundliche Speicherlayouts und parallele Verarbeitung.
Kann ich ECS mit traditionellen GameObjects mischen?
Ja, verwenden Sie den Hybrid Renderer und Authoring-Komponenten, um GameObjects in Entities zu konvertieren. Für Laufzeit-Interaktionen verwenden Sie SystemAPI.GetComponent auf Entities und GameObject-Manipulation für hybride Ansätze.
Was ist Burst und warum sollte ich es verwenden?
Burst ist ein Compiler, der C#-Code mit LLVM optimiert. Er erzeugt hochoptimierten nativen Maschinencode. Wenden Sie immer [BurstCompile] auf Jobs und Systeme fĂĽr 10x+ Leistungsverbesserungen an.
Wie viele Entities kann ECS verarbeiten?
ECS kann auf moderner Hardware 100.000+ Entities verarbeiten. Die Leistung hängt von Cache-Lokalität, Job-Effizienz und der Vermeidung von Main-Thread-Engpässen ab. Profilieren Sie, um Grenzen zu identifizieren.
Sollte ich Aspects oder direkten Komponentenzugriff verwenden?
Aspects verbessern die Code-Organisation beim Abfragen derselben Komponentenkombination ĂĽber mehrere Systeme hinweg. FĂĽr einfache Abfragen ist direkter Zugriff ĂĽber SystemAPI.Query klarer.

Entwicklerdetails

Dateistruktur

đź“„ SKILL.md