using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class ChatSetWin : MonoBehaviour { [SerializeField] private List _togglelist = new List(); private void Awake() { InitUI(); } 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.gameObject.SetActive(false); checkText.gameObject.SetActive(true); } else { bgText.gameObject.SetActive(true); checkText.gameObject.SetActive(false); } } } }