스킬 unity-ecs-patterns
📦

unity-ecs-patterns

안전

유니티 ECS 패턴 구현

고성능 유니티 게임을 구축하려면 전통적인 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를 authoring으로 엔티티로 변환하려면 어떻게 해야 합니까?

예상 결과:

  • 1. Authoring 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에 authoring 컴포넌트 추가
  • 3. 베이킹 시스템이 빌드 시 자동으로 엔티티로 변환

"unity-ecs-patterns" 사용 중입니다. 각 엔티티 주변 반경 내의 모든 적에게 피해를 주는 병렬 작업을 작성하세요.

예상 결과:

이것은 공간 해시 접근 방식이 필요합니다. 먼저 병렬 작업에서 공간 해시 맵을 구축합니다. 그런 다음 인접한 셀을 쿼리하고 피해를 적용하는 두 번째 패스를 실행합니다. 공간 해시 함수는 균일한 분포를 위해 소수 곱셈을 사용합니다: `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를 배우는 게임플레이 프로그래머

안내된 예제와 모범 사례를 통해 전통적인 유니티 MonoBehaviour 패턴에서 데이터 지향 ECS 아키텍처로 전환

파티클 시스템을 생성하는 기술 아티스트

GPU와 유사한 CPU 성능을 위해 Jobs와 Burst 컴파일을 사용하여 대규모 파티클 및 이펙트 시스템을 병렬로 처리

이 프롬프트를 사용해 보세요

기본 ECS 컴포넌트
ISystem과 BurstCompile을 사용하여 Unity ECS에서 Speed 컴포넌트와 MovementSystem을 생성하세요. 시스템은 속도 값에 따라 엔티티를 앞으로 이동시켜야 합니다.
엔티티 스폰닝 시스템
EntityCommandBuffer를 사용하여 런타임에 Spawner 컴포넌트로 엔티티를 생성하는 SpawnSystem을 작성하세요. 단일 스레드 버전과 병렬 작업 버전을 모두 포함하세요.
Aspect 기반 캐릭터
Health, Speed, LocalTransform 컴포넌트를 그룹화하는 CharacterAspect를 생성하세요. 실드 흡수 로직을 존중하는 피해를 입히는 메서드를 포함하세요.
공간 해시 시스템
효율적인 충돌 쿼리를 위해 NativeParallelMultiHashMap을 사용하는 공간 해시 시스템을 구축하세요. 해시 함수와 공간 그리드를 업데이트하는 병렬 작업을 포함하세요.

모범 사례

  • 최대 성능과 Burst 호환성을 위해 ISystem을 SystemBase 대신 사용
  • 최적의 성능을 위해 항상 [BurstCompile]을 작업 및 시스템에 적용
  • 구조적 변경(생성/destroy/추가)을 EntityCommandBuffer를 사용하여 지연시켜 작업 스케줄링 중단 방지

피하기

  • 관리되는 유형(클래스, 문자열, 배열)을 Burst 컴파일을 중단시키므로 컴포넌트에 추가하지 않기
  • 병렬 작업 내에서 구조적 수행하지 않기; 대신 EntityCommandBuffer.ParallelWriter 사용
  • 엔티티를 하나씩 쿼리하지 않기; 배치 작업을 위해 엔티티 쿼리와 ToComponentDataArray 사용

자주 묻는 질문

어떤 유니티 버전이 ECS를 지원합니까?
Unity 2022.2 LTS 이상에서는 안정적인 DOTS 지원을 제공합니다. 패키지 매니저를 통해 Entities와 Burst 패키지를 설치하세요.
ECS는 MonoBehaviour와 어떻게 다릅니까?
ECS는 데이터(컴포넌트)를 동작(시스템)에서 분리합니다. 컴포넌트는 메서드가 없는 단순 구조체입니다. 시스템에는 로직이 포함됩니다. 이를 통해 캐시 친화적 메모리 레이아웃과 병렬 처리가 가능합니다.
ECS와 전통적인 GameObjects를 혼합할 수 있습니까?
네, Hybrid Renderer와 authoring 컴포넌트를 사용하여 GameObjects를 엔티티로 변환할 수 있습니다. 런타임 상호작용의 경우, 하이브리드 접근 방식에 대해 엔티티에서 SystemAPI.GetComponent를 사용하고 GameObject 조작을 사용하세요.
Burst란 무엇이며 왜 사용해야 합니까?
Burst는 LLVM을 사용하여 C# 코드를 최적화하는 컴파일러입니다. 고도로 최적화된 네이티브 머신 코드를 생성합니다. 10배 이상의 성능 향상을 위해 항상 [BurstCompile]을 작업과 시스템에 적용하세요.
ECS가 얼마나 많은 엔티티를 처리할 수 있습니까?
ECS는 최신 하드웨어에서 100,000개 이상의 엔티티를 처리할 수 있습니다. 성능은 캐시 로컬리티, 작업 효율성, 메인 스레드 병목 현상 회피에 따라 달라집니다. 한계를 식별하려면 프로파일링하세요.
Aspect를 사용해야 합니까 아니면 직접 컴포넌트 액세스를 해야 합니까?
Aspects는 동일한 컴포넌트 조합을 여러 시스템에서 쿼리할 때 코드 구성을 개선합니다. 간단한 쿼리의 경우 SystemAPI.Query를 통한 직접 액세스가 더 명확합니다.

개발자 세부 정보

파일 구조

📄 SKILL.md