Advertisement
Cookie042

ObjectToggle

May 6th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.90 KB | None | 0 0
  1. using UnityEngine;
  2. using UnityEngine.Events;
  3.  
  4. public class ObjectToggle : MonoBehaviour
  5. {
  6.     public KeyCode ToggleKey;
  7.  
  8.     public GameObject toggleTarget;
  9.  
  10.     private bool IsToggledOff;
  11.  
  12.     public UnityEvent ToggledOn;
  13.     public UnityEvent ToggledOff;
  14.  
  15.     private void Start()
  16.     {
  17.         if (!toggleTarget)
  18.         {
  19.             toggleTarget = transform.GetChild(0).gameObject;
  20.         }
  21.     }
  22.  
  23.     public void Toggle()
  24.     {
  25.         if (!toggleTarget)
  26.             return;
  27.  
  28.         toggleTarget.SetActive(IsToggledOff);
  29.         IsToggledOff = !IsToggledOff;
  30.         if (IsToggledOff) ToggledOn?.Invoke();
  31.         else ToggledOff?.Invoke();
  32.     }
  33.  
  34.     public void Toggle(bool newState)
  35.     {
  36.         IsToggledOff = !newState;
  37.         Toggle();
  38.     }
  39.  
  40.     void Update()
  41.     {
  42.         if (Input.GetKeyDown(ToggleKey))
  43.         {
  44.             Toggle();
  45.         }
  46.     }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement