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

Component.GetComponent

建议修改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public T GetComponent();

返回值

T 如果找到类型为 T 的组件,则返回对该组件的引用;否则返回 null

描述

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

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

myResults = GetComponent<ComponentType>()

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

myResults = otherComponent.GetComponent<ComponentType>()

注意:GetComponent 仅返回在调用它的 GameObject 上找到的第一个匹配组件,并且检查组件的顺序未定义。因此,如果有多个指定的类型可能匹配,并且您需要找到特定的一个,则应使用 Component.GetComponents 并检查返回的组件列表以识别您想要的组件。

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

请参阅 ComponentGameObject 类参考页面以获取 GetComponent 方法系列的其他变体。

以下示例获取对与脚本位于同一 GameObject 上的铰链关节组件的引用,如果找到,则设置该铰链关节组件上的属性。

using UnityEngine;

public class GetComponentExample : MonoBehaviour { void Start() { HingeJoint hinge = GetComponent<HingeJoint>();

if (hinge != null) { hinge.useSpring = false; } } }

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


声明

public Component GetComponent(Type type);

参数

type 要检索的 type 类型的组件。

返回值

Componenttype 匹配的组件,如果未找到组件,则为 null

描述

此方法的非泛型版本。

此版本的 GetComponent 效率不如泛型版本(上面),因此只有在必要时才应使用它。

using UnityEngine;

public class GetComponentExample : MonoBehaviour { void Start() { HingeJoint hinge = gameObject.GetComponent(typeof(HingeJoint)) as HingeJoint;

if (hinge != null) { hinge.useSpring = false; } } }

声明

public Component GetComponent(string type);

参数

type 要获取的 type 类型的组件的名称。

返回值

Componenttype 匹配的组件,如果未找到组件,则为 null

描述

此方法的基于字符串的版本。

此版本的 GetComponent 效率不如泛型版本(上面),因此只有在必要时才应使用它。

using UnityEngine;

public class GetComponentExample : MonoBehaviour { void Start() { HingeJoint hinge = GetComponent("HingeJoint") as HingeJoint;

if (hinge != null) { hinge.useSpring = false; } } }