Version: 2021.3

GameObject.GetComponentsInChildren

切换到手册
public Component[] GetComponentsInChildren (Type type, bool includeInactive= false);

参数

type 要检索的组件的类型。
includeInactive 在发现结果集内是否应包含非活动 GameObject 上的组件?

描述

Returns all components of Type type in the GameObject or any of its children children using depth first search. Works recursively.

Unity 以递归方式在子 GameObject 上搜索组件。这意味着,它还包含目标 GameObject 的子 GameObject 以及所有后续子 GameObject。
注意:如果请求的类型是 MonoBehaviour 的衍生并且无法加载关联的脚本,此函数将为该组件返回“null”。

using UnityEngine;

public class GetComponentsInChildrenExample : MonoBehaviour { void Start() { Component[] hingeJoints;

hingeJoints = GetComponentsInChildren(typeof(HingeJoint));

if (hingeJoints != null) { foreach (HingeJoint joint in hingeJoints) joint.useSpring = false; } else { // Try again, looking for inactive GameObjects Component[] hingesInactive = GetComponentsInChildren(typeof(HingeJoint), true);

foreach (HingeJoint joint in hingesInactive) joint.useSpring = false; } } }

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

参数

includeInactive 在发现结果集内是否应包含非活动 GameObject?

返回

T[] 匹配指定类型的所有已发现组件的列表。

描述

Generic version of this method.

注意:如果请求的类型是 MonoBehaviour 的衍生并且无法加载关联的脚本,此函数将为该组件返回“null”。

using UnityEngine;

public class GetComponentsInChildrenExample : MonoBehaviour { void Start() { HingeJoint[] hingeJoints;

hingeJoints = GetComponentsInChildren<HingeJoint>();

if (hingeJoints != null) { foreach (HingeJoint joint in hingeJoints) joint.useSpring = false; } else { // Try again, looking for inactive GameObjects HingeJoint[] hingesInactive = GetComponentsInChildren<HingeJoint>(true);

foreach (HingeJoint joint in hingesInactive) joint.useSpring = false; } } }

public void GetComponentsInChildren (List<T> results);
public void GetComponentsInChildren (bool includeInactive, List<T> results);

参数

results 用于接收找到的组件的列表。
includeInactive 在发现结果集内是否应包含非活动 GameObject?

描述

将找到的所有组件均返回到 List results 中。

注意:如果请求的类型是 MonoBehaviour 的衍生并且无法加载关联的脚本,此函数将为该组件返回“null”。

using UnityEngine;
using System.Collections.Generic;

public class GetComponentsInChildrenExample : MonoBehaviour { void Start() { List<HingeJoint> hingeJoints = new List<HingeJoint>();

GetComponentsInChildren<HingeJoint>(false, hingeJoints);

if (hingeJoints != null) { foreach (HingeJoint joint in hingeJoints) joint.useSpring = false; } else { // Try again, looking for inactive GameObjects List<HingeJoint> hingesInactive = new List<HingeJoint>();

GetComponentsInChildren<HingeJoint>(true, hingesInactive);

foreach (HingeJoint joint in hingesInactive) joint.useSpring = false; } } }