0
由於我們無法序列化多維數組(在Unity中),我們僅限於使用一維數組和數學將x,y對轉換爲索引並返回。以下是當前轉換算法:多維數組到單維索引數學
int Width = 3; // Number of cells along the x axis
int Height = 3; // Number of cells along the y axis
GameObject[] Cells = new GameObject[ Width * Height ];
public int CalculateIndex(int x, int y)
{
return y * Width + x;
}
public void CalculateXY(int i, out x, out y)
{
x = i % Width;
y = i/Width;
}
現在,我有我需要創建它引入了深度的3維網格以及z軸的問題,但我無法弄清楚如何注入變化進入上面的方法......我有一個心理障礙。
我發現這個職位,說明一些吧:
How to "flatten" or "index" 3D-array in 1D array?
然而,我的數組是不是在高度,寬度,深度(Y,X,Z)爲了而是寬度,高度,深度(x,y,z)順序。此外,我需要算法將其從索引變回x,y,z值。
感謝, - 傑夫
'X +寬度*(Y +身高* Z)','X = I%寬度; y =(i/=寬度)%高度; z =我/高度「。 – PetSerAl
所以鋸齒陣列不是一個選項? – Slai
也許這一個問題可能會對你有所幫助:http://stackoverflow.com/questions/3613429/algorithm-to-convert-a-multi-dimensional-array-to-a-one-dimensional-array。我發現盡最大可能通過形象化問題來規避這些心理障礙。 – pijemcolu