T[] 一个包含所有类型为 T
的匹配组件的数组。
获取与指定组件位于同一 GameObject 上的所有类型为 T
的组件的引用。
此方法的典型用法是从 MonoBehaviour 脚本(它本身就是一种组件类型)中调用它,以查找附加到与该脚本相同的 GameObject 上的其他组件或 MonoBehaviour 的引用。在这种情况下,您可以调用该方法而不指定任何前面的对象。例如myResults = GetComponents<ComponentType>()
您还可以对不同组件的引用调用此方法,该组件可能附加到不同的 GameObject。在这种情况下,将搜索该组件附加到的 GameObject。例如myResults = otherComponent.GetComponents<ComponentType>()
要查找附加到特定 GameObject 的组件,您需要对该其他 GameObject 的引用(或附加到该 GameObject 的任何组件)。然后,您可以对该引用调用 GetComponents
。
请参阅Component 和GameObject 类参考页面,了解 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`。
results | 用于返回结果的列表。 |
GetComponents 方法的一个变体,允许您提供自己的 List 以填充结果。
这使您可以避免为每次调用该方法分配新的 List 对象。您提供的列表将调整大小以匹配找到的结果数量,并且列表中任何现有的值都将被覆盖。
type | 要搜索的组件类型。 |
Component[] 一个包含所有类型为 type
的匹配组件的数组。
此方法的非泛型版本。
此版本的 GetComponents 不如泛型版本(上面)高效,因此您应仅在必要时使用它。
type | 要搜索的组件类型。 |
results | 用于返回结果的列表。 |
此方法的非泛型版本,允许您提供自己的 List 以填充结果。
此版本的 GetComponents 不如泛型版本(上面)高效,因此您应仅在必要时使用它。