版本: Unity 6 (6000.0)
语言英语
  • C#

Component.GetComponents

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public T[] GetComponents();

返回值

T[] 一个包含所有类型为 T 的匹配组件的数组。

描述

获取与指定组件位于同一 GameObject 上的所有类型为 T 的组件的引用。

此方法的典型用法是从 MonoBehaviour 脚本(它本身就是一种组件类型)中调用它,以查找附加到与该脚本相同的 GameObject 上的其他组件或 MonoBehaviour 的引用。在这种情况下,您可以调用该方法而不指定任何前面的对象。例如

myResults = GetComponents<ComponentType>()

您还可以对不同组件的引用调用此方法,该组件可能附加到不同的 GameObject。在这种情况下,将搜索该组件附加到的 GameObject。例如

myResults = otherComponent.GetComponents<ComponentType>()

要查找附加到特定 GameObject 的组件,您需要对该其他 GameObject 的引用(或附加到该 GameObject 的任何组件)。然后,您可以对该引用调用 GetComponents

请参阅ComponentGameObject 类参考页面,了解 GetComponent 方法系列的其他变体。

以下示例获取对指定 GameObject 上的所有铰链关节组件的引用,并设置找到的每个铰链关节组件上的属性。

using UnityEngine;

public class Example : MonoBehaviour { void Start() { HingeJoint[] hinges = GetComponents<HingeJoint>(); for (int i = 0; i < hinges.Length; i++) { hinges[i].useSpring = false; } } }

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


声明

public void GetComponents(List<T> results);

参数

results 用于返回结果的列表。

描述

GetComponents 方法的一个变体,允许您提供自己的 List 以填充结果。

这使您可以避免为每次调用该方法分配新的 List 对象。您提供的列表将调整大小以匹配找到的结果数量,并且列表中任何现有的值都将被覆盖。


声明

public Component[] GetComponents(Type type);

参数

type 要搜索的组件类型。

返回值

Component[] 一个包含所有类型为 type 的匹配组件的数组。

描述

此方法的非泛型版本。

此版本的 GetComponents 不如泛型版本(上面)高效,因此您应仅在必要时使用它。


声明

public void GetComponents(Type type, List<Component> results);

参数

type 要搜索的组件类型。
results 用于返回结果的列表。

描述

此方法的非泛型版本,允许您提供自己的 List 以填充结果。

此版本的 GetComponents 不如泛型版本(上面)高效,因此您应仅在必要时使用它。