111 lines
2.7 KiB
C#
111 lines
2.7 KiB
C#
using Cysharp.Threading.Tasks;
|
|
using Gameplay;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
/// <summary>
|
|
/// 改名确认弹窗
|
|
/// </summary>
|
|
public class UI_NameConfirmWindowController : UIWindow
|
|
{
|
|
/// <summary>
|
|
/// 打开改名确认界面
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public static async UniTask<UIWindow> Open(string content, Action confirm = null)
|
|
{
|
|
await CommonUtils.CaptureScreenshot(); // 截取当前屏幕截图
|
|
|
|
WindowData WindowData = new(content, confirm);
|
|
|
|
return await UIManager.Instance.CreateAndOpenWindow(UINameConst.UI_NameConfirmWindow, WindowData);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 窗口数据
|
|
/// </summary>
|
|
private class WindowData
|
|
{
|
|
/// <summary>
|
|
/// 内容
|
|
/// </summary>
|
|
public string Content { get; private set; }
|
|
/// <summary>
|
|
/// 确认回调
|
|
/// </summary>
|
|
public Action ConfirmAction { get;private set; }
|
|
|
|
public WindowData(string content, Action confirm)
|
|
{
|
|
Content = content;
|
|
ConfirmAction = confirm;
|
|
}
|
|
}
|
|
|
|
#region UI
|
|
/// <summary>
|
|
/// 高斯模糊遮罩
|
|
/// </summary>
|
|
private RawImage rawImageGaussianBlurMask;
|
|
/// <summary>
|
|
/// 确定按钮
|
|
/// </summary>
|
|
private Button buttonConfirm;
|
|
/// <summary>
|
|
/// 取消按钮
|
|
/// </summary>
|
|
private Button buttonCancel;
|
|
/// <summary>
|
|
/// 关闭按钮
|
|
/// </summary>
|
|
private Button buttonClose;
|
|
/// <summary>
|
|
/// 提示内容
|
|
/// </summary>
|
|
private TMP_Text textContent;
|
|
#endregion
|
|
|
|
private Action confirmAction;
|
|
|
|
public override void OnInit()
|
|
{
|
|
rawImageGaussianBlurMask = GetComponent<RawImage>("GaussianBlurMask");
|
|
buttonConfirm = GetComponent<Button>("Image_Bg/Button_Confirm");
|
|
buttonCancel = GetComponent<Button>("Image_Bg/Button_Cancel");
|
|
buttonClose = GetComponent<Button>("Image_Bg/Button_Close");
|
|
textContent = GetComponent<TMP_Text>("Image_Bg/Text_Info");
|
|
|
|
rawImageGaussianBlurMask.texture = CommonUtils.GetScreenTexture2D();
|
|
|
|
BindButton(buttonConfirm, OnConfirm);
|
|
BindButton(buttonCancel, OnClose);
|
|
BindButton(buttonClose, OnClose);
|
|
}
|
|
|
|
protected override void OnShowWindow(object data)
|
|
{
|
|
base.OnShowWindow(data);
|
|
|
|
if (data is WindowData windowData)
|
|
{
|
|
textContent.text = windowData.Content;
|
|
confirmAction = windowData.ConfirmAction;
|
|
}
|
|
}
|
|
|
|
private void OnConfirm()
|
|
{
|
|
confirmAction?.Invoke();
|
|
CloseWindow();
|
|
}
|
|
|
|
private void OnClose()
|
|
{
|
|
CloseWindow();
|
|
}
|
|
}
|