| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Tuesday, October 31, 2017 |
| | | //-------------------------------------------------------- |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | using UnityEngine.UI; |
| | | using UnityEngine.Events; |
| | | using UnityEngine.EventSystems; |
| | | // //-------------------------------------------------------- |
| | | // // [Author]: 第二世界 |
| | | // // [ Date ]: Tuesday, October 31, 2017 |
| | | // //-------------------------------------------------------- |
| | | // using UnityEngine; |
| | | // using System.Collections; |
| | | // using UnityEngine.UI; |
| | | // using UnityEngine.Events; |
| | | // using UnityEngine.EventSystems; |
| | | |
| | | using System; |
| | | // using System; |
| | | |
| | | namespace vnxbqy.UI |
| | | { |
| | | // namespace vnxbqy.UI |
| | | // { |
| | | |
| | | |
| | | public class FunctionButton : Button |
| | | { |
| | | [SerializeField] int m_Order = 0; |
| | | public int order { |
| | | get { return m_Order; } |
| | | set { |
| | | m_Order = value; |
| | | } |
| | | } |
| | | // public class FunctionButton : Button |
| | | // { |
| | | // [SerializeField] int m_Order = 0; |
| | | // public int order { |
| | | // get { return m_Order; } |
| | | // set { |
| | | // m_Order = value; |
| | | // } |
| | | // } |
| | | |
| | | [SerializeField] int m_FunctionId = -1; |
| | | public int functionId { |
| | | get { return m_FunctionId; } |
| | | set { |
| | | m_FunctionId = value; |
| | | OnFunctionUnLockStateChange(); |
| | | } |
| | | } |
| | | // [SerializeField] int m_FunctionId = -1; |
| | | // public int functionId { |
| | | // get { return m_FunctionId; } |
| | | // set { |
| | | // m_FunctionId = value; |
| | | // OnFunctionUnLockStateChange(); |
| | | // } |
| | | // } |
| | | |
| | | [SerializeField] TitleBtnState m_State = TitleBtnState.Normal; |
| | | public TitleBtnState state { |
| | | get { return m_State; } |
| | | set { |
| | | if (m_State != value) |
| | | { |
| | | m_State = value; |
| | | OnStateChange(); |
| | | } |
| | | } |
| | | } |
| | | // [SerializeField] TitleBtnState m_State = TitleBtnState.Normal; |
| | | // public TitleBtnState state { |
| | | // get { return m_State; } |
| | | // set { |
| | | // if (m_State != value) |
| | | // { |
| | | // m_State = value; |
| | | // OnStateChange(); |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | [SerializeField] Button m_Button; |
| | | public Button button { |
| | | get { return m_Button; } |
| | | set { m_Button = value; } |
| | | } |
| | | // [SerializeField] Button m_Button; |
| | | // public Button button { |
| | | // get { return m_Button; } |
| | | // set { m_Button = value; } |
| | | // } |
| | | |
| | | [SerializeField] ImageEx m_Icon; |
| | | public ImageEx icon { |
| | | get { return this.m_Icon; } |
| | | set { this.m_Icon = value; } |
| | | } |
| | | // [SerializeField] ImageEx m_Icon; |
| | | // public ImageEx icon { |
| | | // get { return this.m_Icon; } |
| | | // set { this.m_Icon = value; } |
| | | // } |
| | | |
| | | [SerializeField] TextEx m_Title; |
| | | public TextEx title { |
| | | get { return this.m_Title; } |
| | | set { this.m_Title = value; } |
| | | } |
| | | // [SerializeField] TextEx m_Title; |
| | | // public TextEx title { |
| | | // get { return this.m_Title; } |
| | | // set { this.m_Title = value; } |
| | | // } |
| | | |
| | | [SerializeField] RedpointBehaviour m_Redpoint; |
| | | public RedpointBehaviour redpoint { |
| | | get { return m_Redpoint; } |
| | | set { m_Redpoint = value; } |
| | | } |
| | | // [SerializeField] RedpointBehaviour m_Redpoint; |
| | | // public RedpointBehaviour redpoint { |
| | | // get { return m_Redpoint; } |
| | | // set { m_Redpoint = value; } |
| | | // } |
| | | |
| | | [SerializeField] Shadow m_Shadow; |
| | | public Shadow shadow { |
| | | get { return this.m_Shadow; } |
| | | set { this.m_Shadow = value; } |
| | | } |
| | | // [SerializeField] Shadow m_Shadow; |
| | | // public Shadow shadow { |
| | | // get { return this.m_Shadow; } |
| | | // set { this.m_Shadow = value; } |
| | | // } |
| | | |
| | | [SerializeField] Transform m_Locked; |
| | | public Transform locked { |
| | | get { return this.m_Locked; } |
| | | set { this.m_Locked = value; } |
| | | } |
| | | // [SerializeField] Transform m_Locked; |
| | | // public Transform locked { |
| | | // get { return this.m_Locked; } |
| | | // set { this.m_Locked = value; } |
| | | // } |
| | | |
| | | [SerializeField] int m_Audio = 1; |
| | | public int clickAudio { |
| | | get { return this.m_Audio; } |
| | | set { this.m_Audio = value; } |
| | | } |
| | | // [SerializeField] int m_Audio = 1; |
| | | // public int clickAudio { |
| | | // get { return this.m_Audio; } |
| | | // set { this.m_Audio = value; } |
| | | // } |
| | | |
| | | [SerializeField] bool m_UseDefaultConfig = true; |
| | | public bool useDefaultConfig { |
| | | get { return this.m_UseDefaultConfig; } |
| | | set { this.m_UseDefaultConfig = value; } |
| | | } |
| | | // [SerializeField] bool m_UseDefaultConfig = true; |
| | | // public bool useDefaultConfig { |
| | | // get { return this.m_UseDefaultConfig; } |
| | | // set { this.m_UseDefaultConfig = value; } |
| | | // } |
| | | |
| | | [SerializeField] FunctionButtonConfig m_AlternativeConfig; |
| | | public FunctionButtonConfig alternativeConfig { get { return m_AlternativeConfig; } set { m_AlternativeConfig = value; } } |
| | | // [SerializeField] FunctionButtonConfig m_AlternativeConfig; |
| | | // public FunctionButtonConfig alternativeConfig { get { return m_AlternativeConfig; } set { m_AlternativeConfig = value; } } |
| | | |
| | | [SerializeField] |
| | | FunctionButtonGroup m_Group; |
| | | public FunctionButtonGroup group { |
| | | get { return m_Group; } |
| | | set { |
| | | if (m_Group != null) |
| | | { |
| | | m_Group.UnRegister(this); |
| | | } |
| | | m_Group = value; |
| | | if (m_Group != null) |
| | | { |
| | | m_Group.Register(this); |
| | | } |
| | | } |
| | | } |
| | | // [SerializeField] |
| | | // FunctionButtonGroup m_Group; |
| | | // public FunctionButtonGroup group { |
| | | // get { return m_Group; } |
| | | // set { |
| | | // if (m_Group != null) |
| | | // { |
| | | // m_Group.UnRegister(this); |
| | | // } |
| | | // m_Group = value; |
| | | // if (m_Group != null) |
| | | // { |
| | | // m_Group.Register(this); |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | public event Action<string> OnPointClickLockFunc; |
| | | public event Action repeatClickFunc; |
| | | // public event Action<string> OnPointClickLockFunc; |
| | | // public event Action repeatClickFunc; |
| | | |
| | | protected override void Awake() |
| | | { |
| | | #if UNITY_EDITOR |
| | | if (!Application.isPlaying) return; |
| | | #endif |
| | | OnFunctionUnLockStateChange(); |
| | | FuncOpen.Instance.OnFuncStateChangeEvent += OnFunctionUnLockStateChange; |
| | | } |
| | | // protected override void Awake() |
| | | // { |
| | | // #if UNITY_EDITOR |
| | | // if (!Application.isPlaying) return; |
| | | // #endif |
| | | // OnFunctionUnLockStateChange(); |
| | | // FuncOpen.Instance.OnFuncStateChangeEvent += OnFunctionUnLockStateChange; |
| | | // } |
| | | |
| | | protected override void OnEnable() |
| | | { |
| | | base.OnEnable(); |
| | | // protected override void OnEnable() |
| | | // { |
| | | // base.OnEnable(); |
| | | |
| | | if (group != null) |
| | | { |
| | | group.Register(this); |
| | | } |
| | | // if (group != null) |
| | | // { |
| | | // group.Register(this); |
| | | // } |
| | | |
| | | OnStateChange(); |
| | | } |
| | | // OnStateChange(); |
| | | // } |
| | | |
| | | protected override void OnDisable() |
| | | { |
| | | base.OnDisable(); |
| | | // protected override void OnDisable() |
| | | // { |
| | | // base.OnDisable(); |
| | | |
| | | if (group != null) |
| | | { |
| | | group.UnRegister(this); |
| | | } |
| | | } |
| | | // if (group != null) |
| | | // { |
| | | // group.UnRegister(this); |
| | | // } |
| | | // } |
| | | |
| | | protected override void OnDestroy() |
| | | { |
| | | #if UNITY_EDITOR |
| | | if (!Application.isPlaying) return; |
| | | #endif |
| | | FuncOpen.Instance.OnFuncStateChangeEvent -= OnFunctionUnLockStateChange; |
| | | } |
| | | // protected override void OnDestroy() |
| | | // { |
| | | // #if UNITY_EDITOR |
| | | // if (!Application.isPlaying) return; |
| | | // #endif |
| | | // FuncOpen.Instance.OnFuncStateChangeEvent -= OnFunctionUnLockStateChange; |
| | | // } |
| | | |
| | | bool invokeForce = false; |
| | | // bool invokeForce = false; |
| | | |
| | | public void Invoke(bool _force) |
| | | { |
| | | invokeForce = _force; |
| | | OnPointerClick(null); |
| | | invokeForce = false; |
| | | } |
| | | // public void Invoke(bool _force) |
| | | // { |
| | | // invokeForce = _force; |
| | | // OnPointerClick(null); |
| | | // invokeForce = false; |
| | | // } |
| | | |
| | | public override void OnPointerClick(PointerEventData eventData) |
| | | { |
| | | if (state == TitleBtnState.Locked) |
| | | { |
| | | if (OnPointClickLockFunc != null) |
| | | { |
| | | OnPointClickLockFunc(this.gameObject.name); |
| | | } |
| | | else |
| | | { |
| | | FuncOpen.Instance.ProcessorFuncErrorTip(functionId); |
| | | } |
| | | return; |
| | | } |
| | | // public override void OnPointerClick(PointerEventData eventData) |
| | | // { |
| | | // if (state == TitleBtnState.Locked) |
| | | // { |
| | | // if (OnPointClickLockFunc != null) |
| | | // { |
| | | // OnPointClickLockFunc(this.gameObject.name); |
| | | // } |
| | | // else |
| | | // { |
| | | // FuncOpen.Instance.ProcessorFuncErrorTip(functionId); |
| | | // } |
| | | // return; |
| | | // } |
| | | |
| | | if (!invokeForce && state == TitleBtnState.Click) |
| | | { |
| | | if (repeatClickFunc != null) |
| | | { |
| | | repeatClickFunc(); |
| | | } |
| | | return; |
| | | } |
| | | // if (!invokeForce && state == TitleBtnState.Click) |
| | | // { |
| | | // if (repeatClickFunc != null) |
| | | // { |
| | | // repeatClickFunc(); |
| | | // } |
| | | // return; |
| | | // } |
| | | |
| | | if (base.onClick != null) |
| | | { |
| | | base.onClick.Invoke(); |
| | | if (eventData != null) |
| | | { |
| | | SoundPlayer.Instance.PlayUIAudio(clickAudio); |
| | | } |
| | | } |
| | | // if (base.onClick != null) |
| | | // { |
| | | // base.onClick.Invoke(); |
| | | // if (eventData != null) |
| | | // { |
| | | // SoundPlayer.Instance.PlayUIAudio(clickAudio); |
| | | // } |
| | | // } |
| | | |
| | | state = TitleBtnState.Click; |
| | | } |
| | | // state = TitleBtnState.Click; |
| | | // } |
| | | |
| | | private void OnStateChange() |
| | | { |
| | | var config = useDefaultConfig ? FunctionButtonConfig.GetDefault() : m_AlternativeConfig; |
| | | if (Application.isPlaying) |
| | | { |
| | | icon.SetSprite(config.GetIconKey(state)); |
| | | } |
| | | // private void OnStateChange() |
| | | // { |
| | | // var config = useDefaultConfig ? FunctionButtonConfig.GetDefault() : m_AlternativeConfig; |
| | | // if (Application.isPlaying) |
| | | // { |
| | | // icon.SetSprite(config.GetIconKey(state)); |
| | | // } |
| | | |
| | | title.color = config.GetFontColor(state); |
| | | title.fontSize = config.GetFontSize(state); |
| | | // title.color = config.GetFontColor(state); |
| | | // title.fontSize = config.GetFontSize(state); |
| | | |
| | | if (shadow != null) |
| | | { |
| | | shadow.enabled = state == TitleBtnState.Locked || state == TitleBtnState.Normal; |
| | | } |
| | | // if (shadow != null) |
| | | // { |
| | | // shadow.enabled = state == TitleBtnState.Locked || state == TitleBtnState.Normal; |
| | | // } |
| | | |
| | | if (locked != null) |
| | | { |
| | | locked.SetActive(state == TitleBtnState.Locked); |
| | | } |
| | | // if (locked != null) |
| | | // { |
| | | // locked.SetActive(state == TitleBtnState.Locked); |
| | | // } |
| | | |
| | | if (group != null && state == TitleBtnState.Click) |
| | | { |
| | | group.NotifyToggleOn(this); |
| | | } |
| | | } |
| | | // if (group != null && state == TitleBtnState.Click) |
| | | // { |
| | | // group.NotifyToggleOn(this); |
| | | // } |
| | | // } |
| | | |
| | | private void OnFunctionUnLockStateChange(int _functionId) |
| | | { |
| | | if (m_FunctionId == _functionId) |
| | | { |
| | | OnFunctionUnLockStateChange(); |
| | | } |
| | | } |
| | | // private void OnFunctionUnLockStateChange(int _functionId) |
| | | // { |
| | | // if (m_FunctionId == _functionId) |
| | | // { |
| | | // OnFunctionUnLockStateChange(); |
| | | // } |
| | | // } |
| | | |
| | | private void OnFunctionUnLockStateChange() |
| | | { |
| | | if (m_FunctionId == 0) |
| | | { |
| | | return; |
| | | } |
| | | // private void OnFunctionUnLockStateChange() |
| | | // { |
| | | // if (m_FunctionId == 0) |
| | | // { |
| | | // return; |
| | | // } |
| | | |
| | | var isOpen = m_FunctionId == -1 || FuncOpen.Instance.IsFuncOpen(m_FunctionId); |
| | | state = isOpen ? state == TitleBtnState.Click ? TitleBtnState.Click : TitleBtnState.Normal : TitleBtnState.Locked; |
| | | } |
| | | // var isOpen = m_FunctionId == -1 || FuncOpen.Instance.IsFuncOpen(m_FunctionId); |
| | | // state = isOpen ? state == TitleBtnState.Click ? TitleBtnState.Click : TitleBtnState.Normal : TitleBtnState.Locked; |
| | | // } |
| | | |
| | | #if UNITY_EDITOR |
| | | protected override void OnValidate() |
| | | { |
| | | base.OnValidate(); |
| | | OnStateChange(); |
| | | } |
| | | #endif |
| | | // #if UNITY_EDITOR |
| | | // protected override void OnValidate() |
| | | // { |
| | | // base.OnValidate(); |
| | | // OnStateChange(); |
| | | // } |
| | | // #endif |
| | | |
| | | } |
| | | // } |
| | | |
| | | } |
| | | // } |
| | | |
| | | |
| | | |