我有一个带有 648 个 VertexPositionNormalTexture 元素的 Vertexbuffer。那是 27 个立方体,每个立方体包含 24 个顶点。
如果我想访问我的第一个立方体的顶点,我可以写:
int startIndex = 0;
VertexPositionNormalTexture[] vertices = new VertexPositionNormalTexture[24];
vertexBuffer.GetData<VertexPositionNormalTexture>(vertices, startIndex, 24);
问题是如果我想访问我的第 9 个立方体 (24*9 = 216)。我必须写:
int startIndex = 216;
VertexPositionNormalTexture[] vertices = new VertexPositionNormalTexture[startIndex + 24];
vertexBuffer.GetData<VertexPositionNormalTexture>(vertices, startIndex, 24);
我必须创建 192 个额外的插槽才能访问我的 24 个元素。因为 vertex.GetData 将复制到它从中获取数据的同一索引。我该怎么做它将我的 24 个元素写入正确大小的数组?
所有的类、结构和函数都来自 XNA Framework 4.0