[유니티] Unity DOTS 1편 : 기본 개념 정리
위 그림을 보면 World, Archetype, Chunk, Entity, Component ...의 뭔지 모르겠는 단어가 잔뜩 나옵니다.
실제로 보면 별 뜻 없습니다!!! (아마도)
제가 이해한 대로 최대한 쉽게 쓰겠습니다.
가장 작은 단위인 Component부터 살펴보ㅏ요!
Component :
각 Entity에 속한 기능.
Component는 구조체, 클래스 모두 가능합니다.
위 사진에서 볼 수 있듯이 IComponentData를 상속하여 내가 원하는 컴포넌트를 만드는 듯 합니다.
Entity :
Component를 갖는 개체. 하나의 Component를 가질 수도 있고, 여러 개의 Component를 가질 수도 있습니다.
기존 유니티 방식에 비유하자면... 게임 오브젝트 같은 단위인 것 같습니다 (저도 아직 확실하진 않음!!)
Chunk :
Chunk가 Archetype보다 작은 단위인 것은 맞지만!!!! 쉬운 이해를 위해 Archetype 과 함께 설명하겠다.
Archetype (아키타입) :
같은 Component들을 갖는 Entity끼리 묶은 그룹.
이 그림을 보면, Archetype A B C, Archetype A B, ArcheType A C 라고 되어있슴다.
즉, Archetype A B C는 Component A와 Component B, Component C를 갖는 Entity만을 묶은 그룹이고,
Archetype A B는 Component A와 Component B를 갖는 Entity만을 묶어놓은 그룹입니다.
어??? 그런데 그림에는 Chunk라고 되어있는데요?????
네!!!
Chunk는
128개의 Entity를 묶어놓은 덩어리 입니다~~!
네. 기본 정의는 이게 끝이래요.
그럼 이제 World는 뭘까요?
World :
World는 언뜻 이름만 보면 Scene처럼 느껴지지만, 아닙니다! (저만 그랬나요??)
World는 기능 분리 시 유용한 요소입니다.
예를 들어, DOTS를 채용하는 타 시스템에서는,
서버 기능에 대해 별도의 World를 생성하고, 각 클라이언트에 대해 World의 엔티티 관리자가 생성 메서드를 제공합니다.
즉, 서버에 접속한 클라이언트에게 엔티티 생성 메서드를 제공하는 기능을, 서버 전용 World에서 수행하는 것이지요!!
왜 이렇게 하냐구요??
일단, Entity가 존재하기 위해선, 제일 먼저 World가 존재해야 합니다.
그리고, 한 World 내에선 각 Entity가 고유한 ID를 가지지만, 서로 다른 World에 존재하는 Entity라면 동일한 ID를 지녀도 상관이 없습니다.
이 특징이 기능 분리에 편리해서 그런 것 아닐까요
사실 아직 실제로 써보지도 않았고, 영상을 모두 정독한 것도 아니라서 제 추측입니다..ㅎㅎ 아니라면 꼭 제게 태클을 걸어주세요.
--이어서--
출처 :