Unity ECS(from 2022.2 테크 스트림)

Unity ECS

Unity ESC와 DOTS 소식을 찾다가 발견한 영상 정리

출처

Unity Korea의 유니티 라이브 2022년 12월. Unity 2022.2 테크 스트림 공개- 12/16일 오후 4시 1시간 39분 38초부터 (https://www.youtube.com/watch?v=46qRfiAGCHs&t=5978s)

현대 컴퓨터의 하드웨어 성능

  • 프로세스와 메모리 성능 갭이 존재. 더 벌어진다. -> 프로세스는 멀티코어 이용으로 더 빠른 발전을 하고 있지만 메모리는 발전하더라도 프로세스만큼 빠른 접근을 하지 못함

Data Oriented Design : 성능 개선을 위한 디자인 방법론

OOP : 기능 중심으로 전개 DOD : 데이터 중심 설계.

  • 개별 객체를 설계하는 것이 아니라 데이터 중심의 설계
  • OOP : 사람하나 하나가 객체, DOD : 사람들의 눈코입을 쪼개서 눈, 코, 입끼리 엮음
  • 병렬처리 가능
  • 생각의 전화이 필요하다 -> 어렵다

DOD 방법론

  • Sparse Set : 엔티티를 구성하는 요소를 묶어서 관리. DOTS, Minecraft, Overwatch
  • Archetype : 엔티티의 조합을 관리. Unity, Unreal

ECS(Entity Component System)

  • GameObjects와 호환되는 데이터 지향
  • 기본 엔티티 변경 : class GameObject -> class ECS
  • 예제 프로젝트 : 깃헙 유니티 테크의 메가시티 프로젝트
  • 예제 프로젝트 2 : Rival Dots Character Controller. 규모가 좀 적절한다.
  • 예제 프로젝트 3 : 기헙, entitycomponentsystemsamples. 완전 초심 튜토리얼.

Editor 지원

  • Inpector : ESC용으로 나옴
  • Entities Hierarchy : Hierarchy말고 Entities Hierarchy가 별도 존재함
  • System : 모니터링 시스템

1.0

  • 출시되었다. 공식 메뉴일이 docs.unity.com에 공개
  • 100%지원하지는 않는다.

고민

  • 애니메이터링 휴머노이드쪽 지원이 이슈가 있다고? 좀 더 봐야겠다

모르는 부분

  • 오클루전 컬링? : 렌더링 이슈이므로 컨셉이 좀 다르게 보는 것는 어떨까?

베스트 프렉티스

Unity Best Practices https://unity.com/how-to 굉장히 좋은 자료들이 잔뜩 들어있다

참고

https://www.youtube.com/watch?v=46qRfiAGCHs&t=5978s