using System.Collections; using System.Collections.Generic; using UnityEngine; public class GradualActivatorController : MonoBehaviour { [System.Serializable] public class GradualActivatorEntry { public GradualActivator gradualActivator; public bool activate = true; // Αν true, καλεί GraduallyActivate, αν false, καλεί GraduallyDeactivate } [Header("Λίστα με Gradual Activators και αν θες Activate ή Deactivate")] [SerializeField] private List activators = new List(); [Header("Καθυστέρηση πριν ξεκινήσει κάθε Activator (προαιρετικά)")] [SerializeField] private float delayBetweenActivators = 0.2f; public bool DoOnlyOnce; private bool alreadyTriggered = false; private void OnTriggerEnter(Collider other) { if (other.CompareTag("Player") && !alreadyTriggered) { Debug.Log("[GradualActivatorController] Παίκτης μπήκε στο trigger. Ξεκινάω εντολές στα activators."); StartCoroutine(HandleActivators()); if (DoOnlyOnce) { alreadyTriggered = true; } } } private IEnumerator HandleActivators() { foreach (var entry in activators) { if (entry.gradualActivator != null) { if (entry.activate) { Debug.Log($"[GradualActivatorController] Καλώ GraduallyActivate στο {entry.gradualActivator.gameObject.name}"); entry.gradualActivator.GraduallyActivate(); } else { Debug.Log($"[GradualActivatorController] Καλώ GraduallyDeactivate στο {entry.gradualActivator.gameObject.name}"); entry.gradualActivator.GraduallyDeactivate(); } yield return new WaitForSeconds(delayBetweenActivators); } } } }