Version: 2020.1

Component.GetComponent

切换到手册
public Component GetComponent (Type type);

参数

type 要检索的组件的类型。

描述

Returns the component of Type type if the GameObject has one attached, null if it doesn't. Will also return disabled components.

Component.GetComponent will return the first component that is found and the order is undefined. If you expect there to be more than one component of the same type, use Component.GetComponents instead, and cycle through the returned components testing for some unique property.

To get a component on a different GameObject, use GameObject.Find to get a reference to the other GameObject, and then use GameObject.GetComponent on the other GameObject.

using UnityEngine;

public class ScriptExample : MonoBehaviour { void Start() { // Disable the spring on the HingeJoint Component. HingeJoint hinge = gameObject.GetComponent(typeof(HingeJoint)) as HingeJoint; hinge.useSpring = false; } }

public T GetComponent ();

描述

Generic version of this method.

using UnityEngine;

public class ScriptExample : MonoBehaviour { void Start() { // Disable the spring on the HingeJoint Component. HingeJoint hinge = GetComponent<HingeJoint>(); hinge.useSpring = false; } }

public Component GetComponent (string type);

描述

Returns the component with name type if the GameObject has one attached, null if it doesn't.

It is better to use GetComponent with a Type instead of a string for performance reasons. Sometimes you might not be able to get to the type however, for example when trying to access a C# script from Javascript. In that case you can simply access the component by name instead of type.

using UnityEngine;

public class ScriptExample : MonoBehaviour { void Start() { // Disable the spring on the HingeJoint Component. HingeJoint hinge = GetComponent("HingeJoint") as HingeJoint; hinge.useSpring = false; } }