Activating and deactivating gameObjects in unity by C# script
Sometimes it is very useful to active or deactivate a gameObject by script. For this gameObject class have a called SetActive(). You can pass true or false in to active or deactivate
- For activating gameObject by script first declare a gameObject and then drag and drop in inspector or use Find method for referencing gameObject.
- then use gameObject.SetActive(true) when you want to visible (activate) gameObject.SetActive(false) when want to deactivate gameObject.
- if gameObject is parent object then its all child object will also deactivaate.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
public GameObject my_object;
// Start is called before the first frame update
void Start()
{
}
void Update()
{
if(Input.GetKeyDown(KeyCode.A))
{
my_object.SetActive(true);//activate gameObject
}
if(Input.GetKeyDown(KeyCode.D))
{
my_object.SetActive(false);//deactivate gameObject
}
}
}
- In this example code we have declare a gameObject of name my_object.
- if we press 'A' key then my_object.SetActive(true); code will execute an active gameObject.
- and if press 'D' key then my_object.SetActive(true); will deactivate gameObject.
- You can use these code to your desired gameObject at desire place of code
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
public GameObject[] my_object;
// Start is called before the first frame update
void Start()
{
}
void Update()
{
if(Input.GetKeyDown(KeyCode.A))
{
for(int i=0;i<my_object.Length;i++)
{
my_object[i].SetActive(true);//activate gameObject
}
}
if(Input.GetKeyDown(KeyCode.D))
{
for(int i=0;i<my_object.Length;i++)
{
my_object[i].SetActive(false);//deactivate gameObject
}
}
}
}
- You can declare array of gameObjects and then can activate or deactivate particular or all gameObject with few line of code.