在另一个类中添加类
本文关键字:添加 另一个 | 更新日期: 2023-09-27 18:14:11
我有一个这样的类:
[System.Serializable]
public class arrayData
{
public List<arrayData2> Levels;
}
public List<arrayData> Zones;
[System.Serializable]
public class arrayData2 { }
我应该添加一个项目到Levels
集合:
void Start()
{
Zones.Add(new arrayData());
Zones[0].Levels.Add(new arrayData2());
}
方法在运行时一直给出这个错误:
NullReferenceException:对象引用未设置为对象
有人知道我错过了什么吗?
在arrayData
中,您需要Levels
的实际实例,可以在构造函数中创建:
[System.Serializable]
public class arrayData
{
public List<arrayData2> Levels;
public arrayData()
{
Levels = new List<arrayData2>();
}
}
您必须在使用Zones
之前创建一个新的实例:
var Zones = new List<arrayData>();
Zones.Add(new arrayData());
Zones[0].Levels.Add(new arrayData2());
在您的示例中,您缺少初始化Zones
和 Levels
集合。
您可以在包含它们的类或Start
方法上执行此操作。
例如,在Start
方法上:
void Start()
{
var Zones = new List<arrayData>();
Zones.Levels = new List<arrayData2>();
Zones.Add(new arrayData());
Zones[0].Levels.Add(new arrayData2());
}
或者在包含它们的类上:
[System.Serializable]
public class arrayData
{
public List<arrayData2> Levels = new List<arrayData2>();
}
public List<arrayData> Zones = new List<arrayData>();
[System.Serializable]
public class arrayData2 { }
我认为Zones
没有初始化。
你需要初始化关卡集合
public List<arrayData2> Levels;
你可以在ArrayData构造函数或者Start()方法