C# 预制已成功实例化,但在访问时,在Unity中生成NullReferenceException
我有一个预置的初始化:C# 预制已成功实例化,但在访问时,在Unity中生成NullReferenceException,c#,unity3d,C#,Unity3d,我有一个预置的初始化: GameObject e = Instantiate(entry, new Vector3(x, y, 0), Quaternion.identity) as GameObject; 我知道它已成功实例化,因为我可以在层次结构上看到克隆。但是,如果我尝试访问它,就会出现NullReferenceException。我试过这个: Debug.Log(e.ToString()); 这是: e.transform.SetParent (GameObject.Find("Ca
GameObject e = Instantiate(entry, new Vector3(x, y, 0), Quaternion.identity) as GameObject;
我知道它已成功实例化,因为我可以在层次结构上看到克隆。但是,如果我尝试访问它,就会出现NullReferenceException。我试过这个:
Debug.Log(e.ToString());
这是:
e.transform.SetParent (GameObject.Find("Canvas").transform);
但它显示了这个错误
NullReferenceException:对象引用未设置为
对象StudentListController.FillList(System.String strList)(位于
资产/脚本/StudentListController.cs:45)
StudentListController+c__迭代器5.MoveNext()(位于
资产/脚本/StudentListController.cs:23)
这是FillList的代码:
void FillList(string strList) {
string[] studentData;
string[] studentList = strList.Split (';');
int startX = -253;
int startY = 70;
int addX = 100;
int addY = 30;
for (int y = 0; y<studentList.Length; y++ ) {
string student = studentList[y];
studentData = student.Split(',');
for(int x = 0; x<studentData.Length; x++) {
string data = studentData[x];
if (x==3) {
data = getAgeFromBirthdate(data).ToString();
} else if (x==4) {
data = getSex(data).ToString();
}
GameObject e = Instantiate(entry, new Vector3(startX + 100*x, startY + 40*y, 0), Quaternion.identity) as GameObject;
//e.GetComponent<Text> ().text = data;
//e.transform.SetParent (GameObject.Find("Canvas").transform);
}
}
}
void填充列表(字符串strList){
字符串[]studentData;
字符串[]studentList=strList.Split(“;”);
int startX=-253;
int startY=70;
int addX=100;
int addY=30;
对于(int y=0;y检查您是否在预制件的自定义组件中拖放了所需的任何内容。如果拖放它们,则应单击“应用”。您的e变量没有引发异常,似乎异常是由StudentListController的FillList方法中的strList引发的。我该怎么做?粘贴这里也有Fill方法代码,看看更新strList是否有帮助,我的猜测是你没有更新strList,或者你的代码没有为它提供值,因此它是空的,因此为filllist添加代码是个例外对不起,但是strList、studentList和studentData有值吗?同时尝试强制转换实例化返回类型,不要不要使用as,因为它会无声地失败,如果它无法施放,请像这样尝试:(GameObject)实例化(…)是的,我已经拖放了所有内容