Files
aibis-dream/Assets/Scripts/UI/Panel/MainPanel.cs
T
2025-11-05 23:59:55 +08:00

85 lines
2.4 KiB
C#

using UnityEngine;
using UnityEngine.UI;
namespace AibisDream.UI
{
public class MainPanel : MonoBehaviour, IUIPanel
{
public bool IsOpen => gameObject.activeSelf;
public bool IsCloseable => false;
private BoolButton _autoBtn;
private BoolButton _ffwdBtn;
#region 面板控制
public void Show()
{
gameObject.SetActive(true);
}
public void Hide()
{
gameObject.SetActive(false);
}
#endregion
private void Awake()
{
RegisterButton();
}
private void Update()
{
if (Input.GetKey(KeyCode.Q) && Input.GetKeyDown(KeyCode.P))
{
var obj = transform.Find("Top Bar").Find("Quick Forward").gameObject;
var active = obj.activeSelf;
obj.SetActive(!active);
}
}
private void RegisterButton()
{
// 为按钮注册事件
var topBar = transform.Find("Top Bar");
topBar.Find("Setting").GetComponent<Button>().onClick.AddListener(OpenSettingPanel);
topBar.Find("Record").GetComponent<Button>().onClick.AddListener(OpenRecordPanel);
// 自动跳过和快进包括状态变换
_autoBtn = topBar.Find("Auto Skip").GetComponent<BoolButton>();
_autoBtn.OnClick.AddListener(AutoSkip);
_autoBtn.getBool = () => DialogController.Instance.advanceMode.CurrentMode == AdvanceModeEnum.Auto;
_ffwdBtn = topBar.Find("Quick Forward").GetComponent<BoolButton>();
_ffwdBtn.OnClick.AddListener(QuickForward);
_ffwdBtn.getBool = () => DialogController.Instance.advanceMode.CurrentMode == AdvanceModeEnum.Quick;
}
private void AutoSkip()
{
DialogController.Instance.SwitchAutoMode();
_autoBtn.FreshState();
_ffwdBtn.FreshState();
}
private void QuickForward()
{
DialogController.Instance.SwitchQuickMode();
_ffwdBtn.FreshState();
_autoBtn.FreshState();
}
private void OpenSettingPanel()
{
UIManager.Instance.ShowPanel<SettingPanel>();
}
private void OpenRecordPanel()
{
UIManager.Instance.ShowPanel<RecordPanel>();
}
}
}