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

You can also use array of gameObject for multiple gameObjects to active or deactivate

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. 


Popular posts from this blog

Positioning GameObjects in unity editor

Creating count down timer in unity by c# script

Changing Image in unity by C# script