我使用Unity API编写的所有内容
所以我有这段代码来帮助我生成地形:
Array CreateTerrainVertices(float[] _heightmap, float _resolution)
{
Debug.Log("Creating terrain vertices");
// The minimum resolution is 1
resolution = Mathf.Max(1, resolution);
Array vertices = new Array();
// For each point, in the heightmap, create a vertex for
// the top and the bottom of the terrain.
for (int i = 0; i < _heightmap.Length; i++) {
vertices.Push(new Vector2(i / resolution, _heightmap[i]));
vertices.Push(new Vector2(i / resolution, 0));
}
Debug.Log("Created " + vertices.length + " terrain vertices");
return vertices.ToBuiltin(Vector2) as Vector2[];
}
在这个剧本中,一切都超越完美!除了最后一行!
return vertices.ToBuiltin(Vector2) as Vector2[];
我收到错误“Vector2是一种类型,在此上下文中无效”。但当我删除Vector2使它看起来像:
return vertices.ToBuiltin() as Vector2[];
它告诉我我需要参数中的类型...但是看看我得到它的第一个错误说“Vector2是一个类型......”。
我该如何解决这个问题?那里有什么?
答案 0 :(得分:0)
您正在创建一个灵活大小的Array对象,添加固定数量的元素,然后尝试将其转换为固定大小的数组。
使用UnityEngine.Lang.Array.ToBuiltIn(Type)的正确方法是传递一个Type对象,指定对象应转换为的类型。
library(xts)
x <- as.xts(z)
options(digits.secs=3)
(u <- make.index.unique(x, 0.001))
# [,1]
# 2015-12-30 09:00:29.000 33.04
# 2015-12-30 09:00:29.000 33.06
# 2015-12-30 09:00:29.001 33.07
# 2015-12-30 09:00:29.002 33.05
# 2015-12-30 09:00:29.003 33.04
# 2015-12-30 09:00:29.004 33.05
# 2015-12-30 09:00:29.005 33.04
然而,这总体上是一种效率低下的解决方案,因为阵列在其组成期间必须重新调整大小几次,然后进行转换。为什么不立即创建具有正确类型和大小的数组?
return vertices.ToBuiltIn(typeof(Vector2)); // I am removing the "as Vector2[]" as it has no effect