当前位置: 首页 > article >正文

【Unity】从父对象中获取子对象组件的方式

1.GetComponentInChildren

用于获取对与指定组件或游戏对象的任何子级相同的游戏对象上的组件类型的引用。

该方法在Unity脚本API的声明格式为:

public T GetComponentInChildren(bool includeInactive = false)

includeInactive参数(可选)表示是否在搜索中包含非活动子游戏对象。

示例用法:

private Image _childImage;

private void Awake()
{
    _childImage = GetComponentInChildren<Image>();
}

要特别注意的是,此方法首先检查调用它的游戏对象,然后使用深度优先搜索向下递归所有子游戏对象,直到找到指定类型的匹配 Component。

因此,如果你要搜索的Component在父对象和子对象都有,那么只会返回父对象的Component

2.GetComponentsInChildren

用于获取对与指定组件相同的游戏对象类型的所有组件以及游戏对象的任何子级的引用。(如果父级也有这个组件,那么也会包含在返回值里面)

该方法在Unity脚本API的声明格式为:

public T[] GetComponentsInChildren(bool includeInactive = false);

includeInactive参数(可选)表示是否在搜索中包含非活动子游戏对象。

示例用法:

using UnityEngine;

public class GetComponentsInChildrenExample : MonoBehaviour
{
    public Image[] images;

    void Start()
    {
        images = GetComponentsInChildren<Image>();
    }
}

 因此,如果你有一个父对象中只包含一个子对象,父对象和其子对象都有你要搜索的Component,因此第一个方法是解决不了的,怎么办?

解决方案:用第二个方法,从数组下标1开始访问(因为数组下标0指向的是父对象的Component的地址)。

using UnityEngine;

public class GetComponentsInChildrenExample : MonoBehaviour
{
    private Image childImage;

    void Start()
    {
        childImage = GetComponentsInChildren<Image>()[1];
    }
}


http://www.kler.cn/a/538705.html

相关文章:

  • 高并发读多写少场景下的高效键查询与顺序统计的方案思路
  • 【大模型】硅基流动对接DeepSeek使用详解
  • 如何在 Linux 中管理自定义脚本:将 ~/bin 目录添加到 $PATH
  • json转excel,在excel内导入json, json-to-excel插件
  • 链表和 list
  • 【通俗易懂说模型】反向传播(附多元回归与Softmax函数)
  • RNN-day1-NLP基础
  • 大模型推理——MLA实现方案
  • 寒假集训思维训练1题解
  • node 程序占用处理方法与后台运行方法
  • Qt 支持的动画格式对比,Lottie/APNG/GIF/WEBP
  • 已经安装了Visual C++ 2015-2022 Redistributable,但运行程序时,提示找不到VCRUNIME140_1D.dll
  • 通过多层混合MTL结构提升股票市场预测的准确性,R²最高为0.98
  • 【Java基础】序列化、反序列化和不可变类
  • HTML 颜色值
  • 蓝桥杯备赛——进制转化相关问题
  • 数据结构(Java)—— 优先级队列(堆)
  • 深度整理总结MySQL——事务隔离级别实现原理
  • 昇腾,mindie,镜像,部署vllm:第1篇,安装新的docker 镜像
  • 【MySQL】第一弹---MySQL 在 Centos 7环境安装
  • 前端高级面试题及其答案
  • git SourceTree 使用
  • 工作案例 - python绘制excell表中RSRP列的CDF图
  • 登录到docker里
  • 在 NXP Yocto 环境下实现 Qualcomm Wi-Fi Driver 的 GitLab CI/CD
  • 使用 SurrealDB 构建高效的 GraphQL 后端