using UnityEngine; using UnityEngine.Experimental.Rendering.Universal; public class LightSwitch : MonoBehaviour { public Light2D[] targetLights; public GameObject switchObject; public SpriteRenderer keySprite; private KeyCode interactionKey; private AudioSource aSource; private bool playerInTrigger; private void Awake() { aSource = GetComponent<AudioSource>(); interactionKey = InputManager.GetInputKey(5); keySprite.enabled = false; } private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.CompareTag("Player")) { keySprite.enabled = true; playerInTrigger = true; } } private void OnTriggerExit2D(Collider2D collision) { if (collision.gameObject.CompareTag("Player")) { keySprite.enabled = false; playerInTrigger = false; } } private void Update() { if (Input.GetKeyDown(interactionKey) && playerInTrigger) { aSource.Play(); foreach (Light2D obj in targetLights) { obj.GetComponent<WallLight>().ChangeLightState(); } if (switchObject.transform.localPosition.y == -0.7f) switchObject.transform.localPosition = new Vector3(0, -0.4f, 0); else if (switchObject.transform.localPosition.y == -0.4f) switchObject.transform.localPosition = new Vector3(0, -0.7f, 0); } } public void SetNewKey() { interactionKey = InputManager.GetInputKey(5); } }