Создание группы отбора
Для работы с CullingGroups не существует компонентов или визуальных инструментов; они доступны исключительно через скрипт.
CullingGroup может быть построен с помощью оператора 'new':
CullingGroup group = new CullingGroup();
Чтобы CullingGroup выполнял расчеты видимости и/или расстояния, укажите камеру, которую он должен использовать:
group.targetCamera = Camera.main;
Создайте и заполните массив структур BoundingSphere позициями и радиусами ваших сфер, и передайте его в SetBoundingSpheres вместе с количеством сфер, которые фактически находятся в массиве. Количество сфер не должно совпадать с длиной массива. Unity рекомендует создать массив, который достаточно большой, чтобы вместить большинство сфер, которые вы когда-либо будете иметь одновременно, даже если первоначальное количество сфер, которые вы фактически имеете в массиве, очень мало. Использование более крупного массива позволяет добавлять или удалять сферы по мере необходимости без вычислительно дорогостоящего процесса изменения размера массива во время выполнения.
BoundingSphere[] spheres = new BoundingSphere[1000];
spheres[0] = new BoundingSphere(Vector3.zero, 1f);
group.SetBoundingSpheres(spheres);
group.SetBoundingSphereCount(1);
В этот момент CullingGroup начнет вычисление видимости одной сферы в каждом кадре.
Чтобы очистить CullingGroup и освободить всю память, которую он использует, удалите CullingGroup через стандартный механизм .NET IDisposable:
group.Dispose();
group = null;