using UnityEngine; using System.Collections; using UnityEngine.UI; using System; /// /// qqwang: /// 自定义的单选按钮 /// public class MyToggle : MonoBehaviour { /// /// 选中状态 /// private GameObject isOnGameObject; /// /// 关闭状态 /// private GameObject isOffGameObject; /// /// 单选状态的管理者 /// private Toggle toggle; /// /// 按钮的选中发生状态对外提供的处理回调 /// private Action OnToggleValueChangedCallBack; /// /// 控件的初始化处理 /// /// 按钮的选中状态发生变化之后,要对外提供的一个回调处理 参数bool,false=关闭 /// 单选按钮的默认状态true= 选中 false= 关闭 public void Init(Action _valueChangedCallBack, bool defaultToggleIsOn) { OnToggleValueChangedCallBack = _valueChangedCallBack; isOnGameObject = this.transform.Find("SwitchOn").gameObject; isOffGameObject = this.transform.Find("SwitchOff").gameObject; toggle = this.gameObject.GetComponent(); if (toggle == null) { toggle = this.gameObject.AddComponent(); } ////读取游戏内的音乐音效配置 SetToggleState(defaultToggleIsOn); toggle.isOn = defaultToggleIsOn; toggle.onValueChanged.AddListener(OnValueChanged); } /// /// 设置不同的状态UI显示 /// /// true= 选中 false= 关闭 private void SetToggleState(bool isOn) { isOnGameObject.SetActive(isOn); isOffGameObject.SetActive(!isOn); } /// /// toggle按钮的选中状态发生变化的处理函数 /// /// true= 选中 false= 关闭 public void OnValueChanged(bool isOn) { SetToggleState(isOn); if (OnToggleValueChangedCallBack != null) { OnToggleValueChangedCallBack(isOn); } } }