using UnityEngine; using UnityEngine.UI; /// /// À attacher sur chaque bouton IA. /// Le toggle enfant est coché APRÈS la fin de la coroutine IA, /// via l'appel de ButtonDoneToggle.NotifyDone() en fin de coroutine. /// /// Flow : /// Clic bouton → enregistre ce bouton comme "en attente" /// Fin coroutine → ButtonDoneToggle.NotifyDone() → coche le toggle /// /// À ajouter en fin de chaque coroutine IA : /// ButtonDoneToggle.NotifyDone(); /// /// Pour reset tous les toggles (nouveau projet) : /// ButtonDoneToggle.ResetAll(); /// [RequireComponent(typeof(Button))] public class ButtonDoneToggle : MonoBehaviour { [Tooltip("Laissez vide — trouvé automatiquement dans les enfants")] [SerializeField] private Toggle _toggle; // Bouton en attente de confirmation (dernier bouton cliqué) private static ButtonDoneToggle _pending; private void Awake() { if (_toggle == null) _toggle = GetComponentInChildren(true); if (_toggle == null) { Debug.LogWarning($"[ButtonDoneToggle] Aucun Toggle trouvé dans les enfants de '{name}'"); return; } // Toggle non-interactable : visuel seulement _toggle.interactable = false; // Au clic : enregistre ce bouton comme "en attente de fin de coroutine" GetComponent