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