私のプロジェクトには、次のようなクラスがあります。
public class Vertices
{
float[] vertexData1;
int vertexData1Offset;
float[] vertexData2;
int vertexData2Offset;
float[] vertexData3;
int vertexData3Offset;
float[] vertexBuffer;
int vertexCount;
int vertexStride;
public void Update()
{
for(int i = 0; i < vertexCount; i++)
{
vertexBuffer[(i * vertexStride) + vertexData1Offset] = vertexData1[i];
vertexBuffer[(i * vertexStride) + vertexData2Offset] = vertexData2[i];
vertexBuffer[(i * vertexStride) + vertexData3Offset] = vertexData3[i];
}
}
}
つまり、配列 ( vertexBuffer ) があり、この配列は別の配列セット ( vertexData1... ) の組み合わせです。配列が結合される方法のみで、各「コンポーネント配列」は、各配列が順次連結されるのとは対照的に、「メイン配列」全体に均等に分散された要素をすべてごちゃ混ぜにします。
これらの配列を公開する方法があるかどうかを知りたい (たとえば、Array をサブクラス化する方法) ( vertexData1... ) このクラスの消費者が、連続した要素を持つ通常の配列であるかのようにアクセスできるようにする方法( vertexData1... )との間のコピーを含む) が、舞台裏では、オブジェクトはこれらの要素をvertexBuffer全体に実際に配布し、 Update() メソッドと複製されたデータの必要性を取り除きます。
これはC#で可能ですか?