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의 관계 더 읽기"

C#의 CancellationToken, CancellationTokenSource

🔥 CancellationToken, CancellationTokenSource https://learn.microsoft.com/ko-kr/dotnet/api/system.threading.cancellationtokensource?view=net-9.0 ✅ 개념 정리 CancellationToken과 CancellationTokenSource는 C#에서 비동기 작업(Task)이나 스레드를 안전하게 취소할 수 있도록 제공되는 기능합니다. 이를 활용하면 비동기 작업을 중단하거나, 긴 루프를 중지할 수 있도록 관리할 수 있습니다. 🔹 CancellationTokenSource 🔹 CancellationToken 역할 설명 CancellationTokenSource 취소 요청을 보내는 쪽 (발신자) 역할을 합니다. Cancel(), CancelAfter(), Dispose() 등을 호출 할 수 있습니다. CancellationToken

C#의 CancellationToken, CancellationTokenSource 더 읽기"

백준 9935번 (문자열 폭발, C++) [BAEKJOON]

문자열 폭발 https://www.acmicpc.net/problem/9935 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 (추가 시간 없음) 128 MB 97727 27262 19242 27.023% 문제 상근이는 문자열에 폭발 문자열을 심어 놓았다. 폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다. 폭발은 다음과 같은 과정으로 진행된다. 상근이는 모든 폭발이 끝난 후에 어떤 문자열이 남는지

백준 9935번 (문자열 폭발, C++) [BAEKJOON] 더 읽기"

백준 11444번 (피보나치 수 6, C++) [BAEKJOON]

피보나치 수 6 https://www.acmicpc.net/problem/11444 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 27890 12508 10367 47.603% 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가

백준 11444번 (피보나치 수 6, C++) [BAEKJOON] 더 읽기"

ECS – EntityQuery 정리

EntityQuery 정리 ECS(Entity Component System)에서 특정 조건을 만족하는 Entity들을 효율적으로 검색하는 도구 Entity가 가진 컴포넌트 조합을 기준으로 검색하며, 이를 통해 메모리 캐시 효율을 극대화 1. EntityQuery의 기본 개념 – 특정 컴포넌트를 가진 Entity 찾기 2. EntityQuery의 주요 조건 조건 설명 WithAll<T>() 해당 컴포넌트를 모두 가진 Entity만 검색 WithAny<T>() 지정한 컴포넌트 중 하나라도 가진 Entity 검색

ECS – EntityQuery 정리 더 읽기"

ECS – MouseHoverAuthoring

1. MouseHover (IComponentData) 2. MouseHoverBaker (Baker) 3. MouseHoverSystem (SystemBase) 1) InitializationSystemGroup 초기화 단계에서 실행됨 2) WorldRaycastJob (IJob) 마우스 위치에서 Raycast를 실행하는 IJob 3) OnUpdate() 1> CollisionWorld 가져오기 2> 마우스 위치에서 레이(Ray) 생성 3> RaycastInput 설정 RaycastInput은 Unity Physics에서 사용되는 구조체로, 물리 엔진이 사용할 레이캐스트 정보를 포함 4> MouseHover 컴포넌트 가져오기 5> 레이캐스트 실행 NativeReference<RaycastHit>을 사용하여

ECS – MouseHoverAuthoring 더 읽기"

ECS – BufferTypeHandle

ECS – BufferTypeHandle ECS에서 DynamicBuffer<T>를 처리하려면 BufferTypeHandle<T>를 사용해야 한다. 즉, “IComponentData가 아닌 버퍼 데이터를 읽고/쓰는 Handle“ 1. BufferTypeHandle<T>란? 2. 사용 예제 1) OnCreate()에서 초기화 2) OnUpdate()에서 매 프레임 업데이트 3. BufferTypeHandle 상세 사용법 1) 기본 사용법 (IJobChunk에서 사용) 2) OnUpdate()에서 ScheduleParallel 실행 3) IJobParallelFor에서 BufferTypeHandle를 사용할 때 일반적으로 IJobParallelFor에서는 직접 사용할 수 없고, AsNativeArray() 를

ECS – BufferTypeHandle 더 읽기"

ECS – System concepts

ECS – System concepts https://docs.unity3d.com/Packages/com.unity.entities@1.3/manual/concepts-systems.html System concepts System의 역할 System의 유형 시스템 유형 설명 SystemBase C# 클래스 기반, 관리형 시스템 (GC 영향 있음) ISystem 구조체 기반, 비관리형 시스템 (성능 최적화) EntityCommandBufferSystem Entity 생성/삭제 등의 구조적 변경을 최적화하는 시스템 ComponentSystemGroup 여러 시스템을 그룹화하여 실행 순서 제어 System 실행 순서 (System Groups) 시스템 그룹 설명 InitializationSystemGroup 초기화

ECS – System concepts 더 읽기"

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) 더 읽기"

위로 스크롤