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