76 lines
1.2 KiB
C#
76 lines
1.2 KiB
C#
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();
|
|
}
|
|
}
|