Files
aibis-dream/Assets/Scripts/UI/Panel/StartPanel.cs
T
dingyuntian 55e7a5c18c 手机端问题修改
1. tap跳转功能实现
2. 跳字优化
2025-12-29 17:42:15 +08:00

115 lines
3.7 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"));
language.Find("Japanese").GetComponent<Button>().onClick.AddListener(() => SetLanguage("ja-JP"));
// 其他链接按钮
var others = transform.Find("Others");
others.Find("问卷").GetComponent<Button>().onClick.AddListener(() =>
{
SettingLoader.Instance.TryRead("Language", out var currentLanguage);
string url = currentLanguage switch
{
"zh-Hans" => ConstRef.SurveyURL_CN,
"en" => ConstRef.SurveyURL_EN,
"ja-JP" => ConstRef.SurveyURL_JP,
_ => 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));
others.Find("TapTap").GetComponent<Button>().onClick.AddListener(OpenTapUrl);
}
#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();
}
private void OpenTapUrl()
{
TapTapCenter.Instance.OpenTapUrl((code, message) =>
{
if (code == 0)
{
Debug.Log("打开Tap链接成功");
}
else
{
Debug.LogError($"打开Tap链接失败: {message}");
UIManager.Instance.ShowMessage("打开Tap链接失败");
}
});
}
#endregion
}
}