StaticBatching에 대해
Static Batching이 무엇인지 알아야 StaticBatchingUtility 클래스를 사용할 수 있어 간단하게 설명해 보겠습니다.
Static Batching은 게임 오브젝트를 정적(Static)으로 일괄 처리하여 렌더링 성능을 향상하는 기능을 제공합니다.
즉, 여러 개의 정적(움직이지 않는) 오브젝트를 단일 메시로 결합하여 한 번의 Draw Call로 렌더링 할 수 있도록 하는 프로세스입니다.
Draw Call을 줄이면 왜? 좋은지에 대해 짤막하게 언급해 둔 포스팅이 있어서 링크 달아두겠습니다.
2023.08.04 - [Unity/Assets] - 유니티 MeshBaker
StaticBatchingUtility.Combine에 대해
StaticBatchingUtility 클래스의 주요 함수에는 StaticBatchingUtility.Combine가 있습니다.
이 함수는 정적으로 일괄 처리할 수 있는 게임 오브젝트 그룹이 있을 때 유용하며, 게임 오브젝트 배열의 모든 정적(움직이지 않는) 렌더러를 정적 배치로 결합합니다.
GameObject[] gameObjectsToBatch = { obj1, obj2, obj3 };
//만약 gameObjectsToBatch에 isStatic이 true가 아니라면 true로 설정해줘야함
StaticBatchingUtility.Combine(gameObjectsToBatch, parentObject);
StaticBatchingUtility.Combine을 사용하는 이유
위에서 언급했던 내용입니다. 왜 굳이 스크립트를 이용해서 Combine 해주어야 하는 걸까요?
인스펙터에서 토글 체크 해주기만 하면 간편한데 말이죠!
그 이유는 바로, 런타임에 생성되는 오브젝트들을 위함이기 때문입니다!
런타임에 생성되는 오브젝트들은 위와 같이 미리 세팅해 둘 수 없기 때문이죠!
한 마디로 요약해 보자면 런타임에 생성되는 오브젝트들을 Static Batching 해주기 위함이다!라고 생각하면 될 것 같습니다!