UNITY C#GetComponent返回Null

时间:2016-07-13 22:45:53

标签: c# unity3d null

我最近决定使用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”。如果您需要再查看代码,请告诉我。

谢谢。

2 个答案:

答案 0 :(得分:0)

确保instanceGo实际上已附加了您想要的组件。

答案 1 :(得分:0)

检查是否有一个名为SpawnZombiesHandler的组件附加到instanceGo,并且您是否在正确的位置获得了大写字母。