I’m generating lots of gameObjects with LODGroups procedurally. I’m able to populate renderers into the LODGroup, and to define the screen space which causes a switch from LOD0 to LOD1 etc. But I’m unable to set the cull threshold. It seems to always want to be at 2%.
I need to be able to do this in C#, and not manually per object.
Anyone familiar with the syntax to adjust the cull in LODGroup? Thanks either way.
The issue was that I mistook the “cull” LOD for a separate component that required a manual assignment, when in fact, all I had to do was to specify the screenRelativeTransitionHeight value on the lowest LOD to zero. This meant that the lowest-level LOD would be in effect until screen-scale zero, and so no cull would ever be necessary.
For instance:
Renderer renOne = new Renderer[1];
Renderer renTwo = new Renderer[1];
Renderer renThree = new Renderer[1];
Renderer renFour = new Renderer[1];
renOne[0] = child.Find (child.name+“LOD0”).gameObject.GetComponent();
renTwo[0] = child.Find (child.name+“LOD1”).gameObject.GetComponent();
renThree[0] = child.Find (child.name+“LOD2”).gameObject.GetComponent();
renFour[0] = child.Find (child.name+“LOD3”).gameObject.GetComponent();
child.GetOrAddComponent();
LOD lods = new LOD[4];
lods[0] = new LOD(.3f, renOne);
lods[1] = new LOD(.08f,renTwo);
lods[2] = new LOD(.04f,renThree);
lods[3] = new LOD(.0f,renFour);
child.GetComponent().SetLODs(lods);
child.GetComponent().RecalculateBounds();
The operative code in this example is the third line from the bottom:
lods[3] = new LOD (.0f,renFour);
the screenRelativeTransitionHeight of .0f means the cull group is never used, because lods[3] covers .04f >> .0f
(Lest it’s not obvious, I’m aware of the function of quality settings Thanks tho.)