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