0

因此,我正在Unity 3D中使用UnityScript嘗試使用細胞自動機制作洞穴生成器。這是我的問題,我創建了兩個變量,寬度和高度,他們需要是我的二維數組的大小。我也創建了一個函數來啓動時生成映射,所以數組需要在啓動時初始化。我知道我需要某種for循環使用.length和變量之一,但我不完全知道如何做到這一點。任何幫助將是偉大的!在UnityScript中製作2D數組通過製作數組陣列

+0

發佈您的代碼,我們會幫助 –

+0

我我們發現使用一維數組並且以二維方式解決這個問題通常更容易(在JS中,計算座標)。 – ssube

+0

將JavaScript的引用更改爲UnityScript,因爲這是技術上的原因。 http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScript – user3071284

回答

0

如果都在你的二維數組行的長度相同,你也不需要編寫一個循環,只需選中的任意行的長度,即

var arr = [ 
    [1, 2, 3], 
    [1, 2, 3], 
    [1, 2, 3], 
    [1, 2, 3], 
]; 
var height = arr.length; //4 
var width = arr[0].length; //3 

一個例子,你將需要遍歷是如果所有的寬度是不同長度的,即

var arr = [ 
    [1, 2, 3], 
    [1, 2, 3, 4] 
]; 

var widths = []; 
for (var i = 0; i < arr.length; i++) { 
    widths.push(arr[i].length); 
} 
console.log(widths); // [3, 4] 

這裏是你如何生成給定的高度和寬度的二維數組

​​
+0

數組的長度和寬度由變量決定,所以我不認爲我可以在不使用循環的情況下實例化這個數組。例如,我的數組的長度可以是10-100之間的任意值,具體取決於生成的結果,因此變量需要是數組的長度。之後,我需要使第一個數組中的每個值都有一個數組,其大小等於第二個變量。直到我運行代碼之後,纔會知道長度和高度。這就是爲什麼我認爲我需要使用循環創建數組。感謝您花時間看! –

+0

我編輯我的問題,我認爲回答你的問題。如果仍然無法幫助,請發佈您的代碼樣本。 –

+0

感謝您的幫助羅伯特! –

0

嗯,團結你只初始化它們是這樣的:

int gridSpace[,]; 
public int height; 
public int width; 

void Start() 
{ 
    gridSpace = new int[height,width]; 
    MakeMapStuffHappen(); 
} 

這將讓你在編輯器中指定的高度和寬度(或程序)