Files
Continentis/Assets/Scripts/MainGame/UI/Base/WaitableUIElement.cs
SoulliesOfficial d09b58fd80 架构大更
2026-03-20 11:56:50 -04:00

47 lines
1.3 KiB
C#

using System;
using Cysharp.Threading.Tasks;
using UniRx;
using UnityEngine;
namespace Continentis
{
public class WaitableUIElement : UIElementBase
{
/// <summary>
/// 显示该UI面板。
/// </summary>
public virtual void Show()
{
gameObject.SetActive(true);
}
/// <summary>
/// 隐藏该UI面板。
/// </summary>
public virtual void Hide()
{
gameObject.SetActive(false);
}
/// <summary>
/// 获取一个“确认”事件的 Observable。
/// 这个 Observable 会在玩家做出确认操作(例如点击按钮)时发出一个信号并完成。
/// 指令队列将等待这个 Observable 完成。
/// </summary>
/// <returns>代表确认事件的 Observable 流。</returns>
[Obsolete("请改用 OnConfirmAsync()。")]
public virtual IObservable<Unit> OnConfirm()
{
return Observable.ReturnUnit();
}
/// <summary>
/// 等待玩家确认操作(例如点击按钮)的异步方法。
/// 子类重写此方法以实现具体的等待逻辑。
/// </summary>
public virtual UniTask OnConfirmAsync()
{
return UniTask.CompletedTask;
}
}
}