Version: 2021.3
동적 게임 오브젝트에 대해 오클루전 컬링 사용
오클루전 영역

오클루전 컬링 및 씬 로드

런타임 시점에 Unity는 열려 있는 씬 개수에 관계없이 한 번에 하나의 오클루전 컬링 데이터 에셋만 로드합니다. 따라서 한 번에 하나의 씬을 로드할지, 아니면 한 번에 여러 개의 씬의 로드할지에 따라 오클루전 컬링 데이터를 다르게 준비해야 합니다.

한 번에 하나의 씬 로드

LoadSceneMode.Single를 사용하여 한 번에 하나의 씬을 로드하는 경우 다음과 같이 각 씬에 대해 개별적으로 오클루전 컬링 데이터를 베이크해야 합니다.

  1. Unity 에디터에서 오클루전 컬링 데이터를 베이크할 하나의 씬을 엽니다.
  2. 해당 씬에 대한 데이터를 베이크합니다. Unity가 데이터를 생성한 후 Assets/[Scene name]/OcclusionCullingData.asset 으로 저장합니다. Unity는 이 에셋에 대한 레퍼런스를 열려 있는 씬에 추가합니다.
  3. 씬을 저장합니다.
  4. 각 씬에 대해 단계 1, 2, 3을 반복합니다.

런타임 시점에 다음 단계에 따라 씬을 로드하십시오.

  1. 씬을 프로젝트의 기본 씬으로 로드하거나 또는 LoadSceneMode.Single을 사용하여 씬을 로드합니다. Unity는 활성 씬이 있고 오클루전 데이터 에셋이 함께 존재하는 경우 이를 언로드합니다. 그런 다음 오클루전 데이터 에셋과 함께 씬을 로드합니다.

한 번에 여러 개의 씬 로드

LoadSceneMode.Additive를 사용하여 한 번에 여러 개의 씬을 로드하는 경우 다음과 같이 해당 씬 모두에 대한 데이터를 베이크해야 합니다.

  1. Unity 에디터에서 Unity가 런타임 시점에 로드할 씬 그룹의 첫 번째 씬을 엽니다. 이것이 활성 씬이 됩니다.
  2. 그룹 내 다른 씬을 열어, 모든 씬이 Unity 에디터에서 동시에 열려 있도록 만듭니다.
  3. 모든 씬에 대한 데이터를 베이크합니다. Unity가 열려 있는 모든 씬에 대한 데이터를 생성한 후 Assets/[active Scene name]/OcclusionCullingData.asset 으로 저장합니다. Unity는 이 에셋에 대한 레퍼런스를 열려 있는 모든 씬에 추가합니다.
  4. 씬을 저장합니다.

런타임 시점에 다음 단계에 따라 씬을 로드하십시오.

  1. 그룹의 첫 번째 씬을 프로젝트의 기본 씬으로 로드하거나 또는 LoadSceneMode.Single을 사용하여 씬을 로드합니다. Unity는 활성 씬이 있고 오클루전 데이터 에셋이 함께 존재하는 경우 이를 언로드합니다. 그런 다음 공유 오클루전 데이터 에셋과 함께 씬을 로드합니다.
  2. 필요한 경우 LoadSceneMode.Additive를 사용하여 다른 씬을 로드합니다. Unity가 추가로 로드된 씬의 오클루전 데이터가 활성 씬의 오클루전 데이터와 동일하다고 확인하면 오클루전 컬링이 의도한 대로 작동합니다.

공유 오클루전 데이터 에셋은 파일 크기가 더 큽니다. 더 큰 오클루전 데이터 에셋을 사용해도 런타임 CPU에 추가적인 영향은 없습니다.

Unity 에디터에서 여러 개의 씬으로 작업하는 자세한 방법은 다중 씬 편집 문서를 참조하십시오.

동적 게임 오브젝트에 대해 오클루전 컬링 사용
오클루전 영역