这一切都在使用Monodevelop的Unity中
我像这样声明我的数组
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;
}
答案 0 :(得分:0)
由于某些原因,在Tile类中需要构造函数,我不确定为什么,但是使用Unity和Monodevelop似乎不支持默认构造函数。
答案 1 :(得分:0)
Siryakalot如你所说,你需要Tile类中的构造函数,因为你不能像这样实现类型Tyle的对象:
Tiles[i] = new Tile();
在Tile类中没有构造函数Tile()
祝你好运:)答案 2 :(得分:-1)
不,类数组的默认值为null。 所以你需要循环并在之后填充数组。
我喜欢这里发布的解决方案,用于清理数组。 https://stackoverflow.com/a/4839502/4018288