Files
aibis-dream/Assets/Scripts/UI/Panel/SettingPanel.cs
T
dingyuntian 9f20ef52d8 UI工具翻新
1. 增加UI工具
2. 增加设置页面
3. GameLoop更新
4. 导入ActionKit工具
2025-04-21 18:53:30 +08:00

82 lines
2.4 KiB
C#

using UnityEngine;
using UnityEngine.UI;
namespace AibisDream
{
public class SettingPanel : MonoBehaviour, IUIPanel
{
public bool IsOpen => gameObject.activeSelf;
#region 打开和关闭
public void Show()
{
// 暂停游戏
GameManager.Instance.PauseGame();
gameObject.SetActive(true);
// 更新表单内容
var form = GetComponentInChildren<SettingForm>();
form.Init();
// 注册函数
RegisterButton();
}
public void Hide()
{
// 更新表单内容
var form = GetComponentInChildren<SettingForm>();
form.UnInit();
UnRegisterButton();
gameObject.SetActive(false);
// 继续游戏
GameManager.Instance.ContinueGame();
}
#endregion
private void RegisterButton()
{
var buttonGroup = transform.Find("Button Group");
var continueBtn = buttonGroup.Find("Continue").GetComponent<Button>();
continueBtn.onClick.AddListener(BackToGame);
var backToMain = buttonGroup.Find("BackMain").GetComponent<Button>();
backToMain.onClick.AddListener(BackToMain);
var quit = buttonGroup.Find("Quit").GetComponent<Button>();
quit.onClick.AddListener(Quit);
}
private void UnRegisterButton()
{
var buttonGroup = transform.Find("Button Group");
var continueBtn = buttonGroup.Find("Continue").GetComponent<Button>();
continueBtn.onClick.RemoveAllListeners();
var backToMain = buttonGroup.Find("BackMain").GetComponent<Button>();
backToMain.onClick.RemoveAllListeners();
var quit = buttonGroup.Find("Quit").GetComponent<Button>();
quit.onClick.RemoveAllListeners();
}
private void BackToGame()
{
// 关闭Setting面板
UIManager.Instance.HidePanel<SettingPanel>();
// TODO 解除暂停
}
private void BackToMain()
{
// 关闭Setting面板
UIManager.Instance.HidePanel<SettingPanel>();
// 重启
GameManager.Instance.QuitGame();
}
private void Quit()
{
Application.Quit();
}
}
}