我跟隨着this unity tutorial,但隨着腳本轉換爲UnityScript。將c#行中的這個多維數組定義轉換爲UnityScript for Unity
大部分情況都沒有問題,但是這條線引起了我的注意。
Color[][] tiles = new Color[numTilesPerRow*numRows][];
我相信我應該做這樣的事情,但它不工作。
var tiles = new Color[numTilesPerRow*numRows][];
我得到一個錯誤:
';' expected. Insert a semicolon at the end.
編輯:
這裏是我完全轉換功能:
Color[][] function ChopUpTiles() {
int numTilesPerRow = terrainTiles.width/tileResolution;
int numRows = terrainTiles.height/tileResolution;
Color[][] tiles = new Color[numTilesPerRow*numRows][];
for (int y=0; y<numRows; y++) {
for (int x=0; x<numTilesPerRow; x++) {
tiles[y*numTilesPerRow + x] = terrainTiles.GetPixels(x*tileResolution, y*tileResolution, tileResolution, tileResolution);
}
}
return tiles;
}
編輯2:
我已經弄清楚如何得到它Ø工作,但我得到一個沮喪的警告:
var tiles = new Array();
做工作,但問題是,我不知道在暗示,這是顏色數組的數組我得到一個沮喪的警告。
那麼,根據我的答案的鏈接的信息,多維數組現在可以宣佈,但參差不齊的陣列仍下落不明。所以你堅持用C#編寫它們,或者根本不使用它們。無論如何,你爲什麼要用Javascript? C#得到了更好的支持,您可以使用Visual Studio,這非常棒:P另外,我還不確定,但似乎Unity將JS編譯爲.NET,因此主要關注語法。 – Luaan
出於好奇,討論鋸齒狀數組的問題在哪裏?數組大小將始終爲'tiles [numTilesPerRow * numRows] [tileResolution * tileResolution]'。 – Jerdak