【发布时间】:2014-07-05 06:20:16
【问题描述】:
我正在关注this unity tutorial,但我正在将脚本转换为 UnityScript。
大部分情况都很好,但是这条线让我很困惑。
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,所以主要是关于语法。
-
只是出于好奇,关于锯齿状数组的讨论从何而来?数组大小将始终为
tiles[numTilesPerRow*numRows][tileResolution*tileResolution]。
标签: c# unity3d unityscript