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);
}
}
}