Files
aibis-dream/Assets/Scripts/UI/Panel/StartPanel.cs
T
2025-09-16 17:13:21 +08:00

91 lines
2.9 KiB
C#

using AibisDream.Utility;
using UnityEngine;
using UnityEngine.UI;
namespace AibisDream.UI
{
public class StartPanel : MonoBehaviour, IUIPanel
{
public bool IsOpen => gameObject.activeSelf;
public bool IsCloseable => false;
#region 开启和关闭
public void Show()
{
gameObject.SetActive(true);
}
public void Hide()
{
gameObject.SetActive(false);
}
#endregion
private void Awake()
{
RegisterButton();
}
private void RegisterButton()
{
// 开始界面按钮
var tabs = transform.Find("Tabs");
tabs.Find("Start").GetComponent<Button>().onClick.AddListener(StartNewGame);
tabs.Find("Load Save File").GetComponent<Button>().onClick.AddListener(OpenSaveFilePanel);
tabs.Find("Setting").GetComponent<Button>().onClick.AddListener(OpenSetting);
tabs.Find("Quit").GetComponent<Button>().onClick.AddListener(QuitApp);
// 语言切换按钮
var language = transform.Find("Language");
language.Find("Chinese").GetComponent<Button>().onClick.AddListener(() => SetLanguage("zh-Hans"));
language.Find("English").GetComponent<Button>().onClick.AddListener(() => SetLanguage("en"));
// 其他链接按钮
var others = transform.Find("Others");
others.Find("问卷").GetComponent<Button>().onClick.AddListener(() =>
{
SettingLoader.Instance.TryRead("Language", out var currentLanguage);
var url = currentLanguage == "zh-Hans" ? ConstRef.SurveyURL_CN : ConstRef.SurveyURL_EN;
Application.OpenURL(url);
});
others.Find("关注").GetComponent<Button>().onClick.AddListener(() =>
{
SettingLoader.Instance.TryRead("Language", out var currentLanguage);
var url = currentLanguage == "zh-Hans" ? ConstRef.QQURL : ConstRef.DiscordURL;
Application.OpenURL(url);
});
others.Find("愿望单").GetComponent<Button>().onClick.AddListener(() => Application.OpenURL(ConstRef.WishlistURL));
}
#region 按钮对应的函数
private void SetLanguage(string language)
{
SettingLoader.Instance.Write("Language", language);
}
private void StartNewGame()
{
GameManager.Instance.StartNewGame();
}
private void OpenSaveFilePanel()
{
UIManager.Instance.ShowPanel<ChapterPanel>();
}
private void OpenSetting()
{
UIManager.Instance.ShowPanel<SettingPanel>();
}
private void QuitApp()
{
GameManager.Instance.QuitApp();
}
#endregion
}
}