C# 从另一个类向列表中添加值引发NullReferenceException
我试图将另一个类中的值添加到另一个类中创建的列表中。我做了一个非常简单的实验,但它总是给我带来错误 第一类只是附加到对象的gameObject脚本C# 从另一个类向列表中添加值引发NullReferenceException,c#,unity3d,C#,Unity3d,我试图将另一个类中的值添加到另一个类中创建的列表中。我做了一个非常简单的实验,但它总是给我带来错误 第一类只是附加到对象的gameObject脚本 public class gameObject : Agent { public Area area; public override void Initialize() { var testData = new test { name = "test value",
public class gameObject : Agent
{
public Area area;
public override void Initialize()
{
var testData = new test
{
name = "test value",
};
area.testList.Add(testData);
}
}
我尝试将该值添加到另一个类的列表中,如下所示
public class test
{
public string name;
}
public class Area : MonoBehaviour
{
public List<test> testList = new List<test>()
}
公共类测试
{
公共字符串名称;
}
公共类领域:单一行为
{
公共列表testList=新列表()
}
为什么该值总是返回
null
?如果我将数据添加到area类中,它将正常工作您在体素区域
类中初始化测试列表
列表,但您使用的是区域
添加前,将区域
替换为体素区域
或初始化区域。测试列表
和区域
公共类游戏对象:代理
{
公共区域;//初始化区域
公共覆盖无效初始化()
{
var testData=新测试
{
name=“测试值”,
};
//区域=新区域();//初始化区域
area.testList=new List();//testList
在VoxelArea
中初始化的area
类是什么?@Sajid可能是由于键入错误,我已经更正了它,只初始化了area,就像area area=new area()
不是“area”属性也需要初始化吗?@谢谢guidance@FarhadZamani它似乎可以工作,但现在我得到了“您正在尝试使用'new'关键字创建单行为。这是不允许的。只能使用AddComponent()添加单行为。或者,您的脚本可以从ScriptableObject继承,或者根本没有基类”相反?@James我不知道unity3d
但是在c
中,你必须在初始化List
中键入和类,然后再添加新值。@FarhadZamani我已经整理好了!谢谢你。我还需要在gameObject脚本中附加区域脚本附加的gameObject来启动它