非常に大きな3Dグリッドが必要です。私が単に3D配列(すなわちT[,,]
)を作成すると、そのグリッド内に未使用の(3D)ポジションがたくさん残ってしまいます。メモリ使用量のために、グリッドは必要な大きさから遠く離れています。C# - 3D配列の3D配列
私の考えは、各位置にサブ3Dグリッドが含まれるサブ3Dグリッド(別名チャンク)の「中空」の3Dグリッドを作成することです。空のチャンクの場合、そのチャンクの3D配列は親3Dグリッドには存在しません。
だから私は、型の値があります。チャンクが空の場合はチャンクが含まれている「トップレベル」のグリッドは、3Dその位置チャンクへの参照を含む配列、またはnullになるだろうT[,,][,,]
を。
私の質問は、T[,,][,,]
の値をどのように初期化するのですか?たとえば、new T[3,3,3][3,3,3]
を実行すると、コンパイラは叫んでいます。
CS0178 Invalid rank specifier: expected ',' or ']'
ありがとうございます。次のように新しいアレイを作成するための
ありがとう、それは私が必要な構文です。私は辞書のアプローチを検討します。 – Virus721