T 指定类型组件的引用,以类型为 T
的对象形式返回。如果未找到组件,则返回 null
。
通过将组件类型作为类型参数提供给泛型方法,检索指定类型组件的引用。
GetComponent
仅返回在 GameObject 上找到的第一个匹配组件,并且不会按照定义的顺序检查组件。如果存在多个相同类型的组件并且您需要找到一个特定的组件,请使用 GameObject.GetComponents,并检查返回的组件列表以识别所需的组件。
注意: 如果您请求的类型是 MonoBehaviour 的派生类型,并且定义它的脚本无法加载,则此函数将为该组件返回 `null`。这可能是因为您对类命名含糊不清。有关命名方面的更多信息,请参阅手册中的 命名脚本。
此方法的典型用法是在对与脚本所在的 GameObject 不同的 GameObject 的引用上调用此方法。例如ComponentType myComponent = otherGameObject.GetComponent<ComponentType>()
要查找附加到其他 GameObject 的组件,您需要 对该其他 GameObject 的引用,或对附加到该 GameObject 的任何组件的引用。然后,您可以在该引用上调用 GetComponent
。
您还可以使用此方法获取附加到此脚本所在的 GameObject 的组件的引用,方法是在附加到 GameObject 的 MonoBehaviour
派生类中调用此方法。您可以省略前面的 GameObject
限定词以引用脚本附加到的 GameObject。在这种情况下,您实际上是在调用 Component.GetComponent,因为脚本本身是一种组件类型,但结果与引用 GameObject 本身相同。例如ComponentType myComponent = GetComponent<ComponentType>()
以下示例获取引用 GameObject 上铰链关节组件的引用,如果找到,则设置其上的属性。
using UnityEngine;
public class GetComponentExample : MonoBehaviour // Attach this script to a GameObject as a component. { // Create a reference to another GameObject in the scene. Set a value for this in the Other Game Object field // in the Inspector window before entering Play mode. The referenced GameObject must contain a // HingeJoint component. public GameObject otherGameObject;
void Start() { HingeJoint hinge = otherGameObject.GetComponent<HingeJoint>(); // Perform null check to confirm a valid HingeJoint component was successfully returned. if (hinge != null) { hinge.useSpring = false; } } }
type | 要搜索的组件类型,以 Type 对象形式指定。 |
Component 指定类型组件的引用,以 Component
类型形式返回。如果未找到组件,则返回 null
。
通过将组件类型作为方法参数提供,检索指定类型组件的引用。
此版本的 GetComponent
不如泛型版本高效。仅在必要时使用此版本。GetComponent
仅返回在 GameObject 上找到的第一个匹配组件,并且不会按照定义的顺序检查组件。如果存在多个相同类型的组件并且您需要找到一个特定的组件,请使用 GameObject.GetComponents,并检查返回的组件列表以识别所需的组件。
注意: 如果您请求的类型是 MonoBehaviour 的派生类型,并且定义它的脚本无法加载,则此函数将为该组件返回 `null`。这可能是因为您对类命名含糊不清。有关命名方面的更多信息,请参阅手册中的 命名脚本。
此方法的典型用法是在对与脚本所在的 GameObject 不同的 GameObject 的引用上调用此方法。例如ComponentType myComponent = otherGameObject.GetComponent(typeof(ComponentType)) as ComponentType
要查找附加到其他 GameObject 的组件,您需要 对该其他 GameObject 的引用,或对附加到该 GameObject 的任何组件的引用。然后,您可以在该引用上调用 GetComponent
。
您还可以使用此方法获取附加到此脚本所在的 GameObject 的组件的引用,方法是在附加到 GameObject 的 MonoBehaviour
派生类中调用此方法。您可以省略前面的 GameObject
限定词以引用脚本附加到的 GameObject。在这种情况下,您实际上是在调用 Component.GetComponent,因为脚本本身是一种组件类型,但结果与引用 GameObject 本身相同。例如ComponentType myComponent = GetComponent(typeof(ComponentType)) as ComponentType
以下示例获取引用 GameObject 上铰链关节组件的引用,如果找到,则设置其上的属性。
using UnityEngine;
public class GetComponentExample : MonoBehaviour // Attach this script to a GameObject as a component. { // Create a reference to another GameObject in the scene. Set a value for this in the Other Game Object field // in the Inspector window before entering Play mode. The referenced GameObject must contain a // HingeJoint component. public GameObject otherGameObject;
void Start() { // This version of this method returns a Component, so use the as operator to safely // convert it to the derived HingeJoint type HingeJoint hinge = otherGameObject.GetComponent(typeof(HingeJoint)) as HingeJoint; // Perform null check to confirm that the returned type was successfully converted to HingeJoint. if (hinge != null) { hinge.useSpring = false; } } }
type | 要搜索的组件类型名称,以字符串形式指定。 |
Component 指定类型组件的引用,以 Component
类型形式返回。如果未找到组件,则返回 null
。
通过将组件类型名称作为方法参数提供,检索指定类型组件的引用。
此版本的 GetComponent
不如泛型版本高效。仅在必要时使用此版本。GetComponent
仅返回在 GameObject 上找到的第一个匹配组件,并且不会按照定义的顺序检查组件。如果存在多个相同类型的组件并且您需要找到一个特定的组件,请使用 GameObject.GetComponents,并检查返回的组件列表以识别所需的组件。
注意: 如果您请求的类型是 MonoBehaviour 的派生类型,并且定义它的脚本无法加载,则此函数将为该组件返回 `null`。这可能是因为您对类命名含糊不清。有关命名方面的更多信息,请参阅手册中的 命名脚本。
此方法的典型用法是在对与脚本所在的 GameObject 不同的 GameObject 的引用上调用此方法。例如ComponentType myComponent = otherGameObject.GetComponent("ComponentType") as ComponentType
要查找附加到其他 GameObject 的组件,您需要 对该其他 GameObject 的引用,或对附加到该 GameObject 的任何组件的引用。然后,您可以在该引用上调用 GetComponent
。
您还可以使用此方法获取附加到此脚本所在的 GameObject 的组件的引用,方法是在附加到 GameObject 的 MonoBehaviour
派生类中调用此方法。您可以省略前面的 GameObject
限定词以引用脚本附加到的 GameObject。在这种情况下,您实际上是在调用 Component.GetComponent,因为脚本本身是一种组件类型,但结果与引用 GameObject 本身相同。例如ComponentType myComponent = GetComponent("ComponentType") as ComponentType
以下示例获取引用 GameObject 上铰链关节组件的引用,如果找到,则设置其上的属性。
using UnityEngine;
public class GetComponentNonPerformantExample : MonoBehaviour // Attach this script to a GameObject as a component. { // Create a reference to another GameObject in the scene. Set a value for this in the Other Game Object field // in the Inspector window before entering Play mode. The referenced GameObject must contain a // HingeJoint component. public GameObject otherGameObject;
void Start() { // This version of this method returns a Component, so use the as operator to safely // convert it to the derived HingeJoint type HingeJoint hinge = otherGameObject.GetComponent("HingeJoint") as HingeJoint; // Perform null check to confirm a valid HingeJoint component was successfully returned. if (hinge != null) { hinge.useSpring = false; } } }