using System; using UnityEngine; using UnityEngine.UI; using UnityEngine.Serialization; public class UIConfirmPopup : UIMenu { [SerializeField] [FormerlySerializedAs("confirmButton")] private Button _confirmButton; [SerializeField] [FormerlySerializedAs("cancelButton")] private Button _cancelButton; [SerializeField] [FormerlySerializedAs("confirmButtonText")] private TextWrapper _confirmButtonText; private Action _onConfirm; private Action _onCancel; private void Awake() { _confirmButton.onClick.AddListener(Confirm); _cancelButton.onClick.AddListener(Cancel); } public override bool OnBack() { if (_onCancel != null) { _onCancel(); } return base.OnBack(); } public void Show(Action confirm, Action cancel = null) { _onConfirm = confirm; _onCancel = cancel; _cancelButton.gameObject.SetActive(cancel != null); Show(); } public void ActiveCancelButton(bool active) { _cancelButton.gameObject.SetActive(active); } public void SetTextConfirmButton(string text) { _confirmButtonText.text = text; } public void Confirm() { if (_onConfirm != null) { _onConfirm(); } Hide(); } public void Cancel() { if (_onCancel != null) { _onCancel(); } Hide(); } }