Unity学习笔记关于⾃定义类的数组初始化赋值时NullReferenceException的问
题
问题
像下图⼀样,当⾃定义类的数组元素赋值时,报错“NullReferenceException: Object reference not set to an instance of an object”。
在这⾥插⼊代码⽚
解决⽅案
这是因为数组初始化后要先实例化才能赋值。
正确的代码是:
using;
using;
using;
[System.Serializable]
public class CustomClass
{
public string name;
public GameObject gameObject;
}
public class CustomClassArray : MonoBehaviour
{
//⽗物体
public GameObject parent;
//存储⾃定义类的数组
[SerializeField]public CustomClass[] myArray;
// Start is called before the first frame update
数组全部赋值为1void Start()
{
/
/初始化数组
myArray =new ansform.childCount];
//将⼦物体全部赋值到数组⾥
for(int i =0; i < ansform.childCount; i++)
{
//【关键点】每个元素要先实例化
myArray[i]=new CustomClass();
//才能赋值
myArray[i].gameObject = ansform.GetChild(i).gameObject;
myArray[i].name = ansform.GetChild(i).gameObject.name.ToString();
}
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论