I have AssetBundle and I instantiate an object from it in runtime. Now I need to combine all already created instances of the object with the new instance into a static butch. here how I do it:
GameObject go = (GameObject)Instantiate(gameObjectObj, Vector3.right * 4 + Vector3.left * 2 * l, Quaternion.LookRotation(Vector3.up, Vector3.forward));
go.isStatic = true;
go.transform.parent = root.transform;
gosList.Add(go);
gos = gosList.ToArray();
StaticBatchingUtility.Combine(gos, root);
As the result I have game object is batching by pairs. For example
- Objects 1 2 3 4 5 6
- Drawcall 1 1 2 2 3 3
- Batching 0 2 2 4 4 6
The question is why the objects are combinig only by pairs?
If I made 10 instances at once and combine them I’ll get 1 drawcall and 10 butches
Here is the code that work fine
for (int i = 0; i < 10; i++){
GameObject go = (GameObject)Instantiate(gameObjectObj, Vector3.right * 4 + Vector3.left * 2 * l, Quaternion.LookRotation(Vector3.up, Vector3.forward));
go.isStatic = true;
go.transform.parent = root.transform;
gosList.Add(go);
gos = gosList.ToArray();
}
StaticBatchingUtility.Combine(gos, root);