//-------------------------------------------------------- 
 | 
//    [Author]:           玩个游戏 
 | 
//    [  Date ]:           Thursday, August 23, 2018 
 | 
//-------------------------------------------------------- 
 | 
using UnityEngine; 
 | 
using System.Collections; 
 | 
using UnityEngine.UI; 
 | 
using UnityEngine.Events; 
 | 
  
 | 
  
 | 
    public class OnOffToggle : MonoBehaviour 
 | 
    { 
 | 
  
 | 
        [SerializeField] Button m_Button; 
 | 
        [SerializeField] RectTransform m_Handle; 
 | 
        [SerializeField] Image m_BackGround; 
 | 
        [SerializeField] RectTransform m_OnShow; 
 | 
        [SerializeField] RectTransform m_OffShow; 
 | 
        [SerializeField] Vector2 m_OnHandleOffset; 
 | 
        [SerializeField] Vector2 m_OffHandleOffset; 
 | 
  
 | 
        bool m_IsOn = false; 
 | 
        public bool isOn { 
 | 
            get { return m_IsOn; } 
 | 
            set { 
 | 
                m_IsOn = value; 
 | 
                SwitchShowState(m_IsOn); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        public void AddListener(UnityAction _action) 
 | 
        { 
 | 
            if (m_Button != null) 
 | 
            { 
 | 
                m_Button.AddListener(_action); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        public void RemoveAllListeners() 
 | 
        { 
 | 
            if (m_Button != null) 
 | 
            { 
 | 
                m_Button.RemoveAllListeners(); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        private void SwitchShowState(bool _isOn) 
 | 
        { 
 | 
            if (m_Handle == null) 
 | 
                return; 
 | 
            m_Handle.anchoredPosition = _isOn ? m_OnHandleOffset : m_OffHandleOffset; 
 | 
            m_BackGround.SetSprite(_isOn ? "SettingUpWin_NO" : "SettingUpWin_OFF"); 
 | 
            m_OnShow.SetActive(_isOn); 
 | 
            m_OffShow.SetActive(!_isOn); 
 | 
        } 
 | 
    } 
 |