Files
2026-02-21 16:45:37 +08:00

64 lines
1.3 KiB
C#

using System.Collections.Generic;
using I2.Loc;
using UnityEngine;
using UnityEngine.UI;
public class LanguageWidget : MonoBehaviour
{
public List<GameObject> objectsToInform = new List<GameObject>();
private Dropdown dropdown;
private void Start()
{
InitList();
}
private void OnEnable()
{
if ((bool)dropdown)
{
RefreshCurrentValue();
}
}
private void InitList()
{
dropdown = GetComponent<Dropdown>();
dropdown.options.Clear();
dropdown.options.Capacity = 0;
for (int i = 0; i < LocalizationManager.GetTermData("GUI/OPTIONS_LANGUAGE_NAME").Languages.Length; i++)
{
dropdown.options.Add(new Dropdown.OptionData(LocalizationManager.GetTermData("GUI/OPTIONS_LANGUAGE_NAME").Languages[i]));
}
RefreshCurrentValue();
}
private void RefreshCurrentValue()
{
int num = 0;
foreach (string allLanguage in LocalizationManager.GetAllLanguages())
{
if (allLanguage == LocalizationManager.CurrentLanguage)
{
break;
}
num++;
}
dropdown.value = num;
dropdown.RefreshShownValue();
}
public void UpdateValue()
{
LocalizationManager.CurrentLanguage = LocalizationManager.GetAllLanguages()[dropdown.value];
foreach (GameObject item in objectsToInform)
{
if (item.activeInHierarchy)
{
item.SendMessage("LanguageChanged");
}
}
}
}