I find it bizarre that I find almost nothing about CullingGroup stuff outside of unity’s own tutorial and API pages. Does no one use this? Or is it really just that simple to use?
Anyways, my issue is that I don’t think I’m using the distance bands correctly, although I thought I was following the CullingGroup API just fine.
Here’s the gist of my cullinggroup code. When I start up the program, this is what it does:
cullinggroup = new CullingGroup();
cullinggroup.targetCamera = Camera.main;
cullinggroup.onStateChanged = StateChangedMethod;
cullingSpheres = new BoundingSphere[maxNumSpheres];
distances = new float[3];
distances[0] = 10.0f;
distances[1] = 20.0f;
distances[2] = 30.0f;
cullinggroup.SetBoundingDistances(distances);
// place the culling group spheres
while(currNumSpheres < maxNumSpheres)
{
// ...
// code to randomly create BoundingSpheres on a plane
// ...
cullingSpheres[currNumSpheres] = new BoundingSphere(sphereLoc, sphereRadius);
++currNumSpheres;
}
cullinggroup.SetBoundingSpheres(cullingSpheres);
cullinggroup.SetBoundingSphereCount(currNumSpheres);
// test that the spheres have been distributed accordingly
resultIndices = new int[maxNumSpheres];
resultLength = cullinggroup.QueryIndices(0, resultIndices, 0);
Debug.Log("0: Number of results is: " + resultLength);
resultLength = cullinggroup.QueryIndices(1, resultIndices, 0);
Debug.Log("1: Number of results is: " + resultLength);
resultLength = cullinggroup.QueryIndices(2, resultIndices, 0);
Debug.Log("2: Number of results is: " + resultLength);
Here’s the result of the print statements when I randomly create 60 spheres:
0: Number of results is: 60
1: Number of results is: 0
2: Number of results is: 0
Here’s one example from my level: The player’s position is at around (258, 0, 84) and the sphere is placed around (237,0,291). Yet even when I set the three distance bands to something crazy like .1, .2, and 100, it still says that all my spheres are in distance band zero. Am I overlooking something that is supposed to explicitly assign the spheres to some distance? I thought it did it automatically.