using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class ChatSetWin : Window { [SerializeField] private List _togglelist = new List(); protected override void BindController() { } protected override void AddListeners() { InitUI(); } protected override void OnPreOpen() { } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } private void InitUI() { int i = 0; int length = _togglelist.Count; for(i = 0; i < length; i++) { int index = i; GameObject toggle = _togglelist[i].gameObject; _togglelist[i].isOn = ChatSetting.Instance.GetBool((ChatBoolType)i); OnClickSwitchSet(_togglelist[i].isOn, index, toggle); _togglelist[i].onValueChanged.RemoveAllListeners(); _togglelist[i].onValueChanged.AddListener((bool isOn)=> { OnClickSwitchSet(isOn,index,toggle); }); } } private void OnClickSwitchSet(bool arg0,int index,GameObject go) { ChatSetting.Instance.SetBoolSetStr((ChatBoolType)index,arg0); switch ((ChatBoolType)index) { case ChatBoolType.Voice1: ToggleTextCtrl(go,arg0); break; case ChatBoolType.Voice2: ToggleTextCtrl(go, arg0); break; case ChatBoolType.Voice3: ToggleTextCtrl(go, arg0); break; } } private void ToggleTextCtrl(GameObject go, bool isOpen) { Text bgText = go.transform.Find("Background/Background_text").GetComponent(); Text checkText = go.transform.Find("Background/Checkmark_text").GetComponent(); if (isOpen) { bgText.SetActive(false); checkText.SetActive(true); } else { bgText.SetActive(true); checkText.SetActive(false); } } } }