58 lines
2.0 KiB
C#
58 lines
2.0 KiB
C#
using System;
|
||
using Continentis.MainGame;
|
||
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
|
||
namespace Continentis.Menu
|
||
{
|
||
/// <summary>
|
||
/// 覆盖跑局确认面板。
|
||
/// 挂载在确认面板的根 GameObject 上,自行管理显示/隐藏和按钮事件。
|
||
/// 由 MenuManager 通过 Show(onConfirm) 唤起;确认后先删除旧跑局存档,再执行回调。
|
||
/// </summary>
|
||
public class ConfirmOverrideRunPanel : MonoBehaviour
|
||
{
|
||
public Button confirmButton;
|
||
public Button cancelButton;
|
||
|
||
private Action _onConfirm;
|
||
|
||
// ── 生命周期 ──────────────────────────────────────────────────────
|
||
|
||
private void Awake()
|
||
{
|
||
confirmButton.onClick.AddListener(OnConfirm);
|
||
cancelButton.onClick.AddListener(OnCancel);
|
||
gameObject.SetActive(false);
|
||
}
|
||
|
||
// ── 公共 API ──────────────────────────────────────────────────────
|
||
|
||
/// <summary>
|
||
/// 显示确认面板。
|
||
/// </summary>
|
||
/// <param name="onConfirm">玩家点击"确认"后执行的回调(由 MenuManager 传入 StartNewRun)。</param>
|
||
public void Show(Action onConfirm)
|
||
{
|
||
_onConfirm = onConfirm;
|
||
gameObject.SetActive(true);
|
||
}
|
||
|
||
// ── 按钮事件 ──────────────────────────────────────────────────────
|
||
|
||
private void OnConfirm()
|
||
{
|
||
gameObject.SetActive(false);
|
||
SaveManager.Instance.DeleteRunSave();
|
||
_onConfirm?.Invoke();
|
||
_onConfirm = null;
|
||
}
|
||
|
||
private void OnCancel()
|
||
{
|
||
gameObject.SetActive(false);
|
||
_onConfirm = null;
|
||
}
|
||
}
|
||
}
|