如何在Unity中访问子级GameObject的组件?

时间:2019-01-12 13:32:18

标签: c# unity3d

我想启用一个健康栏画布,它是我敌人的子代。 我不知道如何访问孩子的组件。

脚本已附加到“ FightController”。我会通过他们的标签找到敌人。敌人-GameObject都有一个“健康栏”-GameObject。

void Start()
{
    enemy = GameObject.FindGameObjectsWithTag("enemy");

    for(int enemyNumber = 0; enemyNumber < 5; enemyNumber++){
         enemy[enemyNumber].GetComponentInChildren<Canvas>().enabled = true;  //This is not working.
    }
}

我收到以下错误:'NullReferenceException:对象引用未设置为对象的实例'

1 个答案:

答案 0 :(得分:0)

好吧,您可以尝试使用transform.GetChild[0].GetComponent<Canvas>()并确保它不为null。当然,如果画布是敌人的第n个孩子,那么请使用GetChild[n]而不是0

从我的评论中复制