# CullingGroup

> Describes a set of bounding spheres that should have their visibility and distances maintained.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule
* **Implements:** [IDisposable](https://learn.microsoft.com/dotnet/api/system.idisposable)

```csharp
public class CullingGroup : IDisposable
```

## Constructors

| Constructor                                                                        | Description            |
| ---------------------------------------------------------------------------------- | ---------------------- |
| [CullingGroup()](/engine/6000.7/script-reference/unityengine/cullinggroup/ctor.md) | Create a CullingGroup. |

## Properties

| Property                                                                                     | Description                                                                                         |
| -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [enabled](/engine/6000.7/script-reference/unityengine/cullinggroup/enabled.md)               | Pauses culling group execution.                                                                     |
| [onStateChanged](/engine/6000.7/script-reference/unityengine/cullinggroup/onstatechanged.md) | Sets the callback that will be called when a sphere's visibility and/or distance state has changed. |
| [targetCamera](/engine/6000.7/script-reference/unityengine/cullinggroup/targetcamera.md)     | Locks the CullingGroup to a specific camera.                                                        |

## Methods

| Method                                                                                                             | Description                                                                                                                                                 |
| ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Dispose](/engine/6000.7/script-reference/unityengine/cullinggroup/dispose.md)                                     | Clean up all memory used by the CullingGroup immediately.                                                                                                   |
| [EraseSwapBack](/engine/6000.7/script-reference/unityengine/cullinggroup/eraseswapback.md)                         | Erase a given bounding sphere by moving the final sphere on top of it.                                                                                      |
| [GetDistance](/engine/6000.7/script-reference/unityengine/cullinggroup/getdistance.md)                             | Get the current distance band index of a given sphere.                                                                                                      |
| [IsVisible](/engine/6000.7/script-reference/unityengine/cullinggroup/isvisible.md)                                 | Returns true if the bounding sphere at index is currently visible from any of the contributing cameras.                                                     |
| [QueryIndices](/engine/6000.7/script-reference/unityengine/cullinggroup/queryindices.md)                           | Retrieve the indices of spheres that have particular visibility and/or distance states.                                                                     |
| [SetBoundingDistances](/engine/6000.7/script-reference/unityengine/cullinggroup/setboundingdistances.md)           | Set bounding distances for 'distance bands' the group should compute, as well as options for how spheres falling into each distance band should be treated. |
| [SetBoundingSphereCount](/engine/6000.7/script-reference/unityengine/cullinggroup/setboundingspherecount.md)       | Sets the number of bounding spheres in the bounding spheres array that are actually being used.                                                             |
| [SetBoundingSpheres](/engine/6000.7/script-reference/unityengine/cullinggroup/setboundingspheres.md)               | Sets the array of bounding sphere definitions that the CullingGroup should compute culling for.                                                             |
| [SetDistanceReferencePoint](/engine/6000.7/script-reference/unityengine/cullinggroup/setdistancereferencepoint.md) | Set the reference point from which distance bands are measured.                                                                                             |

## Static Methods

| Method                                                                                     | Description                                                                                                                             |
| ------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
| [EraseSwapBack](/engine/6000.7/script-reference/unityengine/cullinggroup/eraseswapback.md) | Erase a given entry in an arbitrary array by copying the final entry on top of it, then decrementing the number of entries used by one. |

## Delegates

| Delegate                                                                                              | Description                                                                                              |
| ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| [CullingGroup.StateChanged](/engine/6000.7/script-reference/unityengine/cullinggroup/statechanged.md) | This delegate is used for recieving a callback when a sphere's distance or visibility state has changed. |
