我最近决定使用C#研究Unity中的编程。我遇到了这个讨厌的问题,我不知道如何解决它。当我调用“instanceGo.GetComponent”时,它返回null。我不知道该怎么做。任何想法都会有所帮助!
CODE
// Update is called once per frame
void Update () {
if (Input.GetKey ("p")) {
printMessage = !printMessage;
}
if (instanceGo.GetComponent<SpawnZombiesHandler>() == null) {
print ("1");
} else {
print ("2");
}
foreach(GameObject bullet in instanceGo.GetComponent<ArcherBulletShootHandler>().getBullets()){
print ("12");
foreach (GameObject zombie in instanceGo.GetComponent<SpawnZombiesHandler>().getZombies()) {
hit (bullet, zombie);
if(Mathf.RoundToInt(zombie.transform.position.y) == Mathf.RoundToInt(bullet.transform.position.y) &&
Mathf.RoundToInt(zombie.transform.position.x) == Mathf.RoundToInt(bullet.transform.position.x)) {
print("HIT!");
}
}
}
}
注意它打印“1”。如果您需要再查看代码,请告诉我。
谢谢。
答案 0 :(得分:0)
确保instanceGo实际上已附加了您想要的组件。
答案 1 :(得分:0)
检查是否有一个名为SpawnZombiesHandler的组件附加到instanceGo,并且您是否在正确的位置获得了大写字母。