using System.Collections; using System.Collections.Generic; using UnityEngine; public class BreakLightsWithDelay : MonoBehaviour { [SerializeField] private BreakLight[] _lightToBreak; [SerializeField] private float _delayTime; private bool _LightsAreBroken; private void OnTriggerEnter(Collider col) { if(col.gameObject.tag == "Player" && !_LightsAreBroken) { BreakLights(); _LightsAreBroken = true; } } public void BreakLights() { StartCoroutine(BreakLights(_delayTime)); } IEnumerator BreakLights(float delayTime) { foreach (BreakLight lightsToBreak in _lightToBreak) { lightsToBreak.StartCoroutine(lightsToBreak.BreakThisLight()); print("Is breaking lights"); yield return new WaitForSeconds(delayTime); } } public bool AllLightsAreBroken() { for (int i = 0; i < _lightToBreak.Length; ++i) { if (_lightToBreak[i].lightIsBroken == false) { return false; } } return true; } }