2020.11.21
首先父子物体的脚本关系如下:
在编写敌人路线模块时,我想要在WayLine脚本中调用EnemySpawn脚本中的IndexOfTheSelectedChild方法,如下
public class WayLine : MonoBehaviour {
private bool isOccupied = true;
EnemySpawn es;
private void Awake()
{
es = GetComponent<EnemySpawn>();
}
public void Start()
{
if (es.IndexOfTheSelectedChild() == this.transform.GetSiblingIndex())
{
isOccupied = false;
Debug.Log("WayLine " + this.transform.GetSiblingIndex());
Debug.Log("isOccupied:" + isOccupied);
}
}
}
如上,这段代码在编译过程中没有出现问题,但是在运行的时候,出现了空指针引用异常
异常代码为此处,由于三个WayLine对象中不包含EnemySpawn脚本(EnemySpawn脚本在父物体WayRoot中), 导致了调用GetComponent方法时,找不到EnemySpawn脚本。
因为GetComponent方法是在自身查找,所以无法找到。
解决办法:
获取父物体的EnemySpawn脚本,该异常解决。