Ejemplo n.º 1
0
        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);
        }