using System.Collections.Generic; using I2.Loc; using UnityEngine; using UnityEngine.UI; public class LanguageWidget : MonoBehaviour { public List objectsToInform = new List(); private Dropdown dropdown; private void Start() { InitList(); } private void OnEnable() { if ((bool)dropdown) { RefreshCurrentValue(); } } private void InitList() { dropdown = GetComponent(); 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"); } } } }