using System.Collections; using System.Collections.Generic; using UnityEngine; public class SpookManager : MonoBehaviour { private List<GameObject> spookLightTriggers = new List<GameObject>(); private List<GameObject> spookAudioTriggers = new List<GameObject>(); private List<GameObject> spookSoundSources = new List<GameObject>(); private List<GameObject> spookLightSources = new List<GameObject>(); private bool lightsEnabled; private bool soundsEnabled; private void Awake() { foreach(Transform child in GetComponentsInChildren<Transform>()) { if (child.name.Contains("Spook Trigger")) { TriggerSpook spookComponent = child.gameObject.GetComponent<TriggerSpook>(); if (spookComponent.audioSpook) { spookSoundSources.Add(spookComponent.aSource.gameObject); spookAudioTriggers.Add(child.gameObject); child.gameObject.SetActive(false); spookComponent.aSource.gameObject.SetActive(false); } if (spookComponent.lightSpook) { spookLightSources.Add(spookComponent.lightSource); spookLightTriggers.Add(child.gameObject); child.gameObject.SetActive(false); spookComponent.lightSource.SetActive(false); } } } } public void EnableSoundSpooks() { for (int i = 0; i < spookAudioTriggers.Count; i++) { spookAudioTriggers[i].SetActive(true); } for (int i = 0; i < spookSoundSources.Count; i++) { spookSoundSources[i].SetActive(true); } soundsEnabled = true; } public void EnableLightSpooks() { for (int i = 0; i < spookLightTriggers.Count; i++) { spookLightTriggers[i].SetActive(true); } for (int i = 0; i < spookLightSources.Count; i++) { spookLightSources[i].SetActive(true); } lightsEnabled = true; } public bool GetSoundSpooksState() { return soundsEnabled; } public bool GetLightSpooksState() { return lightsEnabled; } public void OnGameReset() { for (int i = 0; i < spookLightTriggers.Count; i++) { spookLightTriggers[i].SetActive(false); spookLightTriggers[i].GetComponent<TriggerSpook>().ResetSpook(); } for (int i = 0; i < spookLightSources.Count; i++) { spookLightSources[i].SetActive(false); } lightsEnabled = false; for (int i = 0; i < spookAudioTriggers.Count; i++) { spookAudioTriggers[i].SetActive(false); spookAudioTriggers[i].GetComponent<TriggerSpook>().ResetSpook(); } for (int i = 0; i < spookSoundSources.Count; i++) { spookSoundSources[i].SetActive(false); } soundsEnabled = false; } }