| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- 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<string> options = new List<string>(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();
- });
- }
-
- }
- }
|