c# - 如何在 Unity 中访问子游戏对象的组件?

标签 c# unity3d

我想启用一个健康条 Canvas ,它是我敌人的 child 。 我不知道如何访问子组件。

脚本附加到“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:对象引用未设置为对象的实例”

最佳答案

好吧,你可以尝试使用 transform.GetChild[0].GetComponent<Canvas>()并确保它不为空。当然如果 Canvas 是n你敌人的第 th 个 child 然后使用 GetChild[n]而不是 0 .

从我的评论中复制

关于c# - 如何在 Unity 中访问子游戏对象的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54160079/

相关文章:

unity3d - 在 HoloLens 上还是在 Daydream 之外使用 Daydream Controller?

android - Unity3D构建错误

android - java.lang.NoSuchMethodError : No static method zzb 错误

c# - 内部 LINQ 查询

c# - 如何使用 Entity Framework 在动态构建的查询中按实体键获取行索引

C# 更改 DataGridView 中的列标题

c# - 以编程方式定义脚本的执行顺序

c# - 在实现Soomla Unity3d插件的同时进行购买时,Google播放错误

c# - 如何防止存储过程错误在 SqlClient 中抛出异常?

c# - C# 中的字符串连接和标记化 xpath 函数