我指的是图块,它们是Unity中具有特征的精灵。
上下文:我正在尝试将Tile(在Class Tile中使用构造函数生成)添加到列表中。 Tile变量基本上由该类型的Tile的Health,Sprite,ID等组成。 Tile对象中的所有这些变量都不为Null,并且在其中具有某种值。我的问题是,当我在运行时监视变量时,它们通常只是null。我唯一想知道为什么会发生这种情况的原因是,在Tile对象中称为base的变量也是Null,但是我不知道如何解决此问题。
这是一个名为Tile的类
seconds
这是一个名为TileAssign的类,我在其中创建所有图块及其属性,然后将它们添加到“类图块的列表”中
public int ID { get; set; }
public string Name { get; set; }
public Sprite Image { get; set; }
public int Durability { get; set; }
public bool Destructible { get; set; }
public static List<Tile> Tilelist; //Where I plan on storing all the tiles for later use
public Tile()
{
List<Tile> TileList = new List<Tile>();
}
public Tile(int id, string name, int durability, bool destructible, Sprite image)
: this()
{
ID = id;
Name = name;
Image = image;
Durability = durability;
Destructible = destructible;
}
答案 0 :(得分:3)
您要在此处初始化一个临时变量:
public Tile()
{
List<Tile> TileList = new List<Tile>();
}
应该是:
public Tile()
{
TileList = new List<Tile>();
}
TileList
真的是static
吗?如果是这样,请不要在构造函数中对其进行初始化。每次创建新的TileList
时,您都会擦除Tile
。
只需将其声明为:
public static List<Tile> TileList = new List<Tile>();
public Tile()
{
}