using AppUI.Config; using AppUI.Localization; using AppUI.Util.Group; using AppUI.Util.Switch; using System.Collections.Generic; using TMPro; using UnityEngine; namespace AppUI.View.Home.SettingsView { public class BoxCommon : MonoBehaviour { [SerializeField] TMP_Dropdown dropdownLanguage; [SerializeField] BtnGroupSelector crossHairGroup; [SerializeField] UISwitchToggle switchBGM; [SerializeField] UISwitchToggle switchEffect; void OnEnable() { InitDropdown(); RefreshDropdownValue(); InitCrossHairGroup(); InitBGM(); InitEffect(); } void InitDropdown() { // 清空旧选项 dropdownLanguage.ClearOptions(); // 添加文案 List options = new List(GlobalConfig.LanguageTexts); dropdownLanguage.AddOptions(options); // 监听 dropdownLanguage.onValueChanged.RemoveAllListeners(); dropdownLanguage.onValueChanged.AddListener(OnDropdownLanguageChanged); } void RefreshDropdownValue() { int languageIndex = System.Array.IndexOf(GlobalConfig.UILanguages, TextAutoLanguage2.GetLanguage()); dropdownLanguage.SetValueWithoutNotify(languageIndex); dropdownLanguage.RefreshShownValue(); } void OnDropdownLanguageChanged(int index) { if (index < 0 || index >= GlobalConfig.UILanguages.Length) return; LanguageEnum languageEnum = GlobalConfig.UILanguages[index]; if (languageEnum != TextAutoLanguage2.GetLanguage()) { AudioMgr.ins.PlayBtn(); } AppUILocalization.ChangeAllLanguages(languageEnum); RefreshDropdownValue(); } void InitBGM() { switchBGM.Init( UserSettings.ins.openBGM, (isOn) => { UserSettings.ins.openBGM = isOn; UserSettings.ins.Save(); }); } void InitEffect() { switchEffect.Init( UserSettings.ins.openEffect, (isOn) => { UserSettings.ins.openEffect = isOn; UserSettings.ins.Save(); }); } void InitCrossHairGroup() { int index = UserSettings.ins.openCrossHair ? 0 : 1; crossHairGroup.Init( GlobalConfig.ButtonStrs, index, (selectIndex) => { AudioMgr.ins.PlayBtn(); UserSettings.ins.openCrossHair = selectIndex == 0; UserSettings.ins.Save(); }); } } }