using System.Collections; using System.Collections.Generic; using UnityEngine; public class TriggerScript : MonoBehaviour { public string CYD; public string CPD; public string CGD; public bool HasTriggered; public Material GreenMat; public Material RedMat; private AudioManager Audio; private bool IsCoRunning; private void Start() { if (gameObject.name == "ColourDoorPad") { CYD = FindObjectOfType<NoteDoorsScript>().CorrectYellowDoor.name; CPD = FindObjectOfType<NoteDoorsScript>().CorrectPinkDoor.name; CGD = FindObjectOfType<NoteDoorsScript>().CorrectGreenDoor.name; } Audio = FindObjectOfType<AudioManager>(); IsCoRunning = false; } private void OnTriggerEnter(Collider other) { if ((other.gameObject.tag == "Player") && (gameObject.name == "ColourDoorPad")) { HasTriggered = true; if (!IsCoRunning) { StartCoroutine(PlayNotes()); } GetComponent<Renderer>().material = GreenMat; } else { Audio.PlayClip("Button_Click", 1, 1); HasTriggered = true; GetComponent<Renderer>().material = GreenMat; } } private void OnTriggerExit(Collider other) { HasTriggered = false; GetComponent<Renderer>().material = RedMat; } private IEnumerator PlayNotes() { IsCoRunning = true; PlayNoteOne(); yield return new WaitForSeconds(.5f); PlayNoteTwo(); yield return new WaitForSeconds(.5f); PlayNoteThree(); yield return new WaitForSeconds(.5f); IsCoRunning = false; } private void PlayNoteOne() { switch (CYD) { case "YellowLeft": Audio.PlayClip("Note", 1, 2); break; case "YellowMiddle": Audio.PlayClip("Note", 1, 1); break; case "YellowRight": Audio.PlayClip("Note", 1, .5f); break; default: break; } } private void PlayNoteTwo() { switch (CPD) { case "PinkLeft": Audio.PlayClip("Note", 1, .25f); break; case "PinkMiddle": Audio.PlayClip("Note", 1, 1.25f); break; case "PinkRight": Audio.PlayClip("Note", 1, 2.5f); break; default: break; } } private void PlayNoteThree() { switch (CGD) { case "GreenLeft": Audio.PlayClip("Note", 1, .75f); break; case "GreenMiddle": Audio.PlayClip("Note", 1, 1.5f); break; case "GreenRight": Audio.PlayClip("Note", 1, 2.25f); break; default: break; } } }