ECS의 World와 SubScene의 관계

⭐ 개념 정리 ✅ World ECS에서 World는 Entity와 System 등을 관리하는 Container 역할 World는 특정 씬(Scene)에 종속되지 않고, 모든 ECS 데이터를 포함하여 관리한다. World가 관리하는 핵심 구성 요소 4가지 ✅ SubScene SubScene은 씬(Scene) 내부에서 특정 ECS 데이터(Entity)를 포함하는 컨테이너 역할을 한다. SubScene이 로드되면, 그 안의 GameObject들이 자동으로 Entity로 변환(Entity Conversion)되어 World에 등록 ➡️ SubScene의 로드 […]

ECS의 World와 SubScene의 관계 더 읽기"

ECS – Component concepts (3)

4. 여러 종류의 Component (6) Chunk components https://docs.unity3d.com/Packages/com.unity.entities@1.3/manual/components-chunk.html Chunk Component는 개별 엔터티(Entity)가 아닌 Chunk 단위로 데이터를 저장하는 컴포넌트 즉, Chunk 전체에 대한 공통 데이터를 저장하는 데 사용됨 1) Chunk Component의 주요 특징 https://docs.unity3d.com/Packages/com.unity.entities@1.3/manual/components-chunk-introducing.html 2) Shared Component와 차이점 특징 Shared Component Chunk Component 저장 위치 Chunk 내의 모든 Entity가 같은 값을 공유 Chunk 자체에 값이 저장됨

ECS – Component concepts (3) 더 읽기"

ECS – Component concepts (2)

4. 여러 종류의 Component (5) Dynamic buffer components https://docs.unity3d.com/Packages/com.unity.entities@1.3/manual/components-buffer.html 1) Dynamic buffer 구성 요소 소개 https://docs.unity3d.com/Packages/com.unity.entities@1.3/manual/components-buffer-introducing.html Dynamic buffer components는 관리되지 않는 구조체들의 크기 조절이 가능한 배열처럼 작동하는 컴포넌트 예를 들어 Entity가 이동할 경로점(waypoint) 위치들과 같은 배열 데이터를 저장하는 데 사용할 수 있음 Dynamic buffer의 구성 요소 Dynamic buffer는 데이터와 함께 길이(Length), 용량(Capacity), 내부 포인터(pointer)를 저장

ECS – Component concepts (2) 더 읽기"

ECS – Component concepts (1)

1. Component란? https://docs.unity3d.com/Packages/com.unity.entities@1.3/manual/concepts-components.html Unity의 DOTS (Data-Oriented Technology Stack)에서 ECS(Entity Component System)의 핵심 요소 중 하나 ComponentData는 ECS에서 “데이터”를 저장하는 구조체 위의 예시에서 Speed, Direction, Position, Renderer가 Component 특징 사용 예시 2. IComponentData를 사용하여 Entity에 데이터 추가 IComponentData를 사용하려면 엔터티(Entity)에 추가해야 함 사용 예시 3. IComponentData를 읽고 수정하는 방법 ECS에서는 시스템(System)을 이용하여 데이터를 처리 사용 예시

ECS – Component concepts (1) 더 읽기"

ECS – Entity concepts

ECS – Entity concepts https://docs.unity3d.com/Packages/com.unity.entities@1.3/manual/concepts-entities.html 1. Entity란? 2. EntityManager (Entity 관리) EntityManager는 Entity를 생성, 삭제, 수정하는 다양한 메서드를 제공 메서드 설명 CreateEntity() 새로운 Entity 생성 Instantiate(Entity e) 기존 Entity를 복사하여 새로운 Entity 생성 DestroyEntity(Entity e) 특정 Entity 삭제 AddComponent<T>(Entity e) Entity에 특정 컴포넌트 추가 RemoveComponent<T>(Entity e) Entity에서 특정 컴포넌트 제거 GetComponent<T>(Entity e) Entity의 특정 컴포넌트

ECS – Entity concepts 더 읽기"

ECS – Unity Physics Stateful Event Study

StatefulTriggerEventBufferAuthoring.cs 코드 설명 이 코드는 TriggerEvent를 StatefulTriggerEvent로 변환하여 Dynamic Buffer에 저장하는 역할을 합니다. 특정 엔티티에 StatefulTriggerEventBufferAuthoring 컴포넌트를 추가하면 Trigger 이벤트의 상태(Enter, Stay, Exit)를 추적할 수 있습니다. Unity의 GameObject를 ECS(Entity-Component-System) 엔티티로 변환하는 역할 Baker 클래스에서 StatefulTriggerEvent를 저장할 Dynamic Buffer를 추가함 이를 통해 Trigger 이벤트를 저장하는 버퍼를 ECS 엔티티에 추가 가능 해당 엔티티는 StatefulTriggerEvent 버퍼를 가지게 됨.

ECS – Unity Physics Stateful Event Study 더 읽기"

ECS – ISystem Study (1)

state.SystemHandle SystemState는 ECS의 ISystem에서 시스템의 상태를 관리하는 구조체 (현재 ISystem) SystemHandle은 현재 실행 중인 ISystem을 식별하는 핸들 SystemState를 통해 현재 시스템이 속한 월드(World)의 EntityManager에 접근 Q. 그렇다면 ISystem은 싱글턴(Singleton)? ISystem은 일반적인 의미의 싱글턴(Singleton)은 아니다. 하지만 각 ISystem은 ECS 내에서 하나의 시스템 인스턴스로만 존재하기 때문에 “싱글턴과 유사한 개념”으로 볼 수 있다. 특성 일반적인 싱글턴 패턴 ECS의

ECS – ISystem Study (1) 더 읽기"

ECS – ISystem, SystemBase

ISystem과 SystemBase 비교 https://docs.unity3d.com/Packages/com.unity.entities@1.3/manual/systems-comparison.html 시스템을 생성하기 위하여 ISystem 또는 SystemBase를 사용할 수 있다. ISystem은 비관리형 메모리에 접근할 수 있도록 해주고, SystemBase는 관리형 데이터를 저장하는 데 유용하다. 두 시스템 타입 모두 Entities 패키지와 작업 시스템(job system)과 함께 사용할 수 있다. ISystem은 Burst와 호환되며, SystemBase보다 빠르고 값 기반 표현을 사용한다. 일반적으로 성능상의 이점을 얻기 위해 SystemBase보다 ISystem을

ECS – ISystem, SystemBase 더 읽기"

DOTS – Unity Physics 101 (1)

https://docs.google.com/document/d/1nHJoDBetbrmvO-KsOJ2S_p0tJI2UzRrp6T3oZSPoyg8/edit?tab=t.0#heading=h.hjbnnw9w6v0u 게임 물리의 기본 개념을 설명하고, Unity Physics API의 필수 사항들을 다룬 후, 이를 바탕으로 몇 가지 간단한 예제를 통해 기본적인 내용을 설명 물리 엔진이 하는 일 Unity Physics 패키지에 대해 구체적으로 설명하기 전 물리 엔진이 일반적으로 수행하는 일과 어떻게 작동하는 지에 대해 먼저 알아야 한다. 모든 업데이트마다 물리 엔진은 아래와 같은 네 가지 주요

DOTS – Unity Physics 101 (1) 더 읽기"

DOTS – EntitesSample (3)

13. Custom2DTransforms Transform2DAuthoring.cs Transform2DAuthoring 클래스의 주요 목표는 기존 Unity의 Transform 시스템을 사용하지 않고, ECS(Entity Component System)에서 동작하는 최적화된 커스텀 2D 트랜스폼 시스템을 구현하는 것 MovementSystem.cs 커스텀 2D 트랜스폼 데이터(LocalTransform2D)를 사용하여 객체를 움직이고 크기 및 회전을 조정하는 시스템을 구현 LocalToWorld2DSystem.cs LocalTransform2D 데이터를 기반으로 각 엔티티의 월드 공간(LocalToWorld 변환 행렬)을 계산합니다. 추가적으로 부모-자식 관계를 고려하여 계층 구조를

DOTS – EntitesSample (3) 더 읽기"

위로 스크롤