GameObject.GetComponentfunction GetComponent (type : Type) : ComponentDescriptionReturns the component of Type type if the game object has one attached, null if it doesn't. You can access both builtin components or scripts with this function. GetComponent is the primary way of accessing other components. From javascript the type of a script is always the name of the script as seen in the project view. Example:
JavaScripts
function Start () {
var curTransform : Transform; curTransform = gameObject.GetComponent(Transform); // This is equivalent to: curTransform = gameObject.transform; } function Update () { // To access public variables and functions // in another script attached to the same game object. // (ScriptName is the name of the javascript file) var other : ScriptName = gameObject.GetComponent(ScriptName); // Call the function DoSomething on the script other.DoSomething (); // set another variable in the other script instance other.someVariable = 5; } using UnityEngine;
using System.Collections; public class example : MonoBehaviour { void Start() { Transform curTransform; curTransform = gameObject.GetComponent<Transform>(); curTransform = gameObject.transform; } void Update() { ScriptName other = gameObject.GetComponent<ScriptName>(); other.DoSomething(); other.someVariable = 5; } } import UnityEngine
import System.Collections class example(MonoBehaviour): def Start(): curTransform as Transform curTransform = gameObject.GetComponent[of Transform]() curTransform = gameObject.transform def Update(): other as ScriptName = gameObject.GetComponent[of ScriptName]() other.DoSomething() other.someVariable = 5 function GetComponent.<T> () : TDescriptionfunction GetComponent (type : String) : ComponentDescriptionReturns the component with name type if the game object 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. Example:
JavaScripts
function Update () {
// To access public variables and functions // in another script attached to the same game object. // (ScriptName is the name of the javascript file) var other : ScriptName; other = gameObject.GetComponent("ScriptName"); // Call the function DoSomething on the script other.DoSomething (); // set another variable in the other script instance other.someVariable = 5; } using UnityEngine;
using System.Collections; public class example : MonoBehaviour { void Update() { ScriptName other; other = gameObject.GetComponent("ScriptName") as ScriptName; other.DoSomething(); other.someVariable = 5; } } import UnityEngine
import System.Collections class example(MonoBehaviour): def Update(): other as ScriptName other = (gameObject.GetComponent('ScriptName') as ScriptName) other.DoSomething() other.someVariable = 5 |
