因此,我正在Unity 3D中使用UnityScript尝试使用细胞自动机制作洞穴生成器。这是我的问题,我创建了两个变量,宽度和高度,他们需要是我的二维数组的大小。我也创建了一个函数来启动时生成映射,所以数组需要在启动时初始化。我知道我需要某种for
循环使用.length
和变量之一,但我不完全知道如何做到这一点。任何帮助将是伟大的!在UnityScript中制作2D数组通过制作数组阵列
回答
如果都在你的二维数组行的长度相同,你也不需要编写一个循环,只需选中的任意行的长度,即
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]
这里是你如何生成给定的高度和宽度的二维数组
数组的长度和宽度由变量决定,所以我不认为我可以在不使用循环的情况下实例化这个数组。例如,我的数组的长度可以是10-100之间的任意值,具体取决于生成的结果,因此变量需要是数组的长度。之后,我需要使第一个数组中的每个值都有一个数组,其大小等于第二个变量。直到我运行代码之后,才会知道长度和高度。这就是为什么我认为我需要使用循环创建数组。感谢您花时间看! –
我编辑我的问题,我认为回答你的问题。如果仍然无法帮助,请发布您的代码样本。 –
感谢您的帮助罗伯特! –
嗯,团结你只初始化它们是这样的:
int gridSpace[,];
public int height;
public int width;
void Start()
{
gridSpace = new int[height,width];
MakeMapStuffHappen();
}
这将让你在编辑器中指定的高度和宽度(或程序)
- 1. 使用2D数组制作分形图?
- 2. 如何在LC3中制作2D阵列
- 3. 2d对象数组阵列
- 4. 数组和复制阵列
- 5. Ruby复制数组阵列
- 6. 如何制作numpy数组的矩阵?
- 7. PHP制作数组
- 8. 从PHP数组中制作HTML列表?
- 9. 添加2d数组以在python中制作3d
- 10. 访问一维数组作为2D阵列中的C++
- 11. 从数组阵列中制作一个字符串
- 12. 传递阵列数组到控制器不工作在asp.net mvc
- 13. 创建嵌套数组(2D)通过合并阵列
- 14. 通过阵列中的数组迭代
- 15. 数组和类unityscript
- 16. 2d数组在glUniformMatrix4fv,C++中工作吗?
- 17. Javascript创建2d数组与ID作为阵列键
- 18. PHP创建表1个阵列通过数组索引操作
- 19. 在python中制作二维数组
- 20. 在php中制作json对象数组
- 21. 制作数组在Django中的字段
- 22. 在php中如何制作数组?
- 23. 用PHP制作Javascript数组
- 24. 制作数组副本
- 25. 从AdapterView制作数组
- 26. 制作数组元素null
- 27. 如何制作NSStrings数组?
- 28. C++指针制作数组
- 29. 制作对象数组
- 30. 制作关联数组
发布您的代码,我们会帮助 –
我我们发现使用一维数组并且以二维方式解决这个问题通常更容易(在JS中,计算坐标)。 – ssube
将JavaScript的引用更改为UnityScript,因为这是技术上的原因。 http://wiki.unity3d.com/index.php/UnityScript_versus_JavaScript – user3071284