57 lines
2.1 KiB
C#
57 lines
2.1 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using Kill.Managers;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
namespace Kill.UI.Pages
|
|
{
|
|
public class ChangeLanguagePage : MonoBehaviour
|
|
{
|
|
LanguageManager.LanguageType languageType;
|
|
public Button[] languageButtons;
|
|
public Button confirmButton;
|
|
public Button backButton;
|
|
void Start()
|
|
{
|
|
UIManager.Instance.RegisterBackAction(OnBack);
|
|
languageType = LanguageManager.Instance.languageType;
|
|
int currentIndex = (int)languageType;
|
|
for (int i = 0; i < languageButtons.Length; i++)
|
|
{
|
|
int index = i; // 需要一个局部变量来捕获当前的索引
|
|
languageButtons[i].onClick.RemoveAllListeners();
|
|
languageButtons[i].onClick.AddListener(() => OnLanguageButtonClicked(index));
|
|
// 更新按钮显示状态
|
|
languageButtons[i].interactable = (i != currentIndex);
|
|
languageButtons[i].transform.Find("icon").gameObject.SetActive(i == currentIndex);
|
|
}
|
|
confirmButton.onClick.RemoveAllListeners();
|
|
confirmButton.onClick.AddListener(OnConfirm);
|
|
backButton.onClick.RemoveAllListeners();
|
|
backButton.onClick.AddListener(OnBack);
|
|
|
|
}
|
|
void OnLanguageButtonClicked(int index)
|
|
{
|
|
languageType = (LanguageManager.LanguageType)index;
|
|
// 更新按钮状态
|
|
for (int i = 0; i < languageButtons.Length; i++)
|
|
{
|
|
languageButtons[i].interactable = (i != index);
|
|
languageButtons[i].transform.Find("icon").gameObject.SetActive(i == index);
|
|
}
|
|
}
|
|
public void OnConfirm()
|
|
{
|
|
LanguageManager.Instance.SetLanguage(languageType);
|
|
UIManager.Instance.OpenPage(UIManager.PageName.selfPage);
|
|
}
|
|
public void OnBack()
|
|
{
|
|
UIManager.Instance.RegisterBackAction(GetComponentInParent<SelfPage>().OnBack);
|
|
Destroy(gameObject);
|
|
}
|
|
}
|
|
|
|
}
|