[U Day Seoul 2024] 유니티 ECS 개발 시작하기
- 유니티 ECS 개발은 데이터 중심 설계를 통해 성능 향상을 목표로 한다. 🚀
- ECS는 엔티티, 컴포넌트, 시스템으로 구성되며, 데이터와 로직을 분리한다. 🧩
- 기존 객체 지향 방식과 달리, ECS는 데이터를 배열 형태로 관리하여 CPU 캐시 효율을 높인다. 🧮
- 컴포넌트는 단순 데이터 묶음으로, 메서드를 포함하지 않으며 스트럭트 형태로 정의된다. 🧱
- 시스템은 데이터에 대한 연산을 수행하는 함수로, 쿼리를 통해 특정 컴포넌트를 가진 엔티티를 필터링한다. ⚙️
- 아키타입은 유니크한 컴포넌트 조합을 관리하며, 청크 단위로 데이터를 저장하여 변경 사항에 유연하게 대처한다. 📦
- 월드는 ECS 요소들을 담는 틀로, 관리되는 타입과 관리되지 않는 타입으로 나뉜다. 🌍
- 엔티티 프리팹을 사용하여 런타임에 엔티티를 생성하고, 컴포넌트 데이터를 초기화할 수 있다. 🏭
- 레퍼런스 RW/RO는 원본 컴포넌트 데이터에 대한 쓰레드 안전한 참조를 제공한다. 🛡️
- 베이크 스크립트를 사용하여 게임 오브젝트를 엔티티 컴포넌트로 변환하고, 서브 신에 배치한다. 🔪
- ISystem 인터페이스를 상속하여 시스템을 구현하고, OnUpdate 함수에서 로직을 처리한다. 🧬
- 블렛 스폰 시스템을 통해 실시간으로 총알 엔티티를 생성하고, 랜덤 속도를 부여한다. 🎯