Version: 2020.2
LanguageEnglish
  • C#

Component.GetComponent

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Submission failed

For some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

public Component GetComponent(Type type);

Parameters

type The type of Component to retrieve.

Description

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();

Description

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);

Description

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; } }