UNITY C# GetComponent Returns Null

本文关键字:Null Returns GetComponent UNITY | 更新日期: 2023-09-27 17:56:55

我最近决定研究使用 C# 在 Unity 中进行编程。我遇到了这个令人讨厌的问题,我不知道如何解决它。几乎当我调用"instanceGo.GetComponent"时,它返回空值。我不知道该怎么办。任何想法都会有所帮助!

法典

    // 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"。告诉我您是否需要查看更多代码。

谢谢。

UNITY C# GetComponent Returns Null

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

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