【发布时间】:2014-09-10 10:20:11
【问题描述】:
这一切都在 Unity 中使用 Monodevelop
我这样声明我的数组
Tile[] Tiles = new Tile[7];
然后我尝试像这样循环并设置元素(尽管这本身就是为了解决这个问题)
for (int i = 0; i < Tiles.Length; i++)
{
Tiles[i] = new Tile();
}
但是,集合中仍然充满了 7 个空对象。我一定错过了一些简单的东西。我原以为最初的代码行就足够了。
整个例子:
using UnityEngine;
using System.Collections;
public class Foo : MonoBehaviour
{
Tile[] Tiles = new Tile[7];
// Use this for initialization
void Start ( )
{
for (int i = 0; i < Tiles.Length; i++)
{
Tiles[i] = new Tile();
}
}
}
这是 Tile 类
using UnityEngine;
using System.Collections;
public class Tile
{
public Tile[] nonAdjacentTiles = new Tile[6];
public Transform _mesh;
}
【问题讨论】:
-
你能发布一个完整的例子来演示我们可以运行的问题吗?到目前为止,您的代码暗示您遇到的问题是不可能的,因为数组中的项目已成功初始化。
-
请展示一个完整的例子。您展示的内容不应导致您描述的行为。
-
这就是整个例子
-
@SirYakalot 整个示例是一个控制台应用程序,其他人可以运行它来重现您的问题。如果我“填补空白”以使您的代码运行,它会正常工作。很明显,还有其他事情正在发生,例如您可能正在查看不同的对象引用。
-
@SirYakalot 您是否确认在查看
Tiles的状态之前调用了Start()方法?它的documentation 声明它在调用任何Update方法之前被调用。