void UpdateBuffer(int count) { if (instanceCount == count) { return; } instanceCount = count; /// if (insObjBuffer != null) { insObjBuffer.Release(); insObjBuffer = null; } insObjBuffer = new UnityEngine.ComputeBuffer(instanceCount, InsObjSize); InsObjs = null; InsObjs = new InsObj[instanceCount]; /// if (instanceMesh != null) { args[0] = (uint)instanceMesh.GetIndexCount(0); //subMeshIndex args[1] = (uint)instanceCount; args[2] = (uint)instanceMesh.GetIndexStart(0); //subMeshIndex args[3] = (uint)instanceMesh.GetBaseVertex(0); //subMeshIndex } else { args[0] = args[1] = args[2] = args[3] = 0; } argsBuffer.SetData(args); }