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