.getcomponent unity code example
Example 1: how to get component in unity c#
GetComponent<Rigidbody>(); //used to find component on character (rigid body can be changed)
GameObject.FindGameObjectWithTag("player"); //finds any game object in the scene with this tag
Example 2: getcomponent c#
//First script
public class Enemy : MonoBehaviour{
public int health = 10;
public void saySomething(){
Debug.Log("Hi, i am an enemy.");
}
}
//Second script
//There is one thing though,
//if the script is located on another gameobject,
//which will be most likely, you have to somehow
//find that gameobject first. There are many ways of
//doing it, via raycast, collision,
//trigger, find by tag, find by gameobject etc.
//But i will use the simplest way to understand,
//that is declaring public GameObject in player script,
//which contains Enemy, and later you just drag and drop the
//gameobject in the inspector.
public class Player : MonoBehaviour{
//Drag and drop gameobject with script Enemy in inspector
GameObject enemyGameObject;
void Start(){
//We get Enemy component - script
//from public gameobject which contains this script
Enemy enemyScript = enemyGameObject.GetComponent<Enemy>();
//This will debug Enemy health is: 10
Debug.Log("Enemy health is:"+ enemyScript.health)
//This will debug "Hi, i am an enemy."
enemyScript.saySomething();
}
}
Example 3: unity get component
using UnityEngine;
public class TryGetComponentExample : MonoBehaviour
{
void Start()
{
// Since Unity 2019.2 you can use TryGetComponent to check
// if an object has a component, it will not allocate GC in
// the editor if the object doesn't have one.
if (TryGetComponent(out Rigidbody rigidFound))
{
// Deactivate rigidbody
rigidFound.enabled = false;
}
// For versions below 2019.2 you can do it this way:
// Create a variable
Rigidbody rigidFound = GetComponent<Rigidbody>();
// If the 'Rigidbody' exist in the gameobject
if(rigidFound != null)
{
// Deactivate rigidbody
rigidFound.enabled = false;
}
}
}
Example 4: unity gameobject.getcomponent
rb = GetComponent<Rigidbody>();