| | |
| | | // //-------------------------------------------------------- |
| | | // // [Author]: 第二世界 |
| | | // // [ Date ]: Tuesday, October 31, 2017 |
| | | // //-------------------------------------------------------- |
| | | // using UnityEngine; |
| | | // using System.Collections; |
| | | // using System.Collections.Generic; |
| | | // using UnityEngine.UI; |
| | | // using UnityEngine.Events; |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Tuesday, October 31, 2017 |
| | | //-------------------------------------------------------- |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine.UI; |
| | | using UnityEngine.Events; |
| | | |
| | | // namespace vnxbqy.UI |
| | | // { |
| | | namespace vnxbqy.UI |
| | | { |
| | | |
| | | // public class FunctionButtonGroup : MonoBehaviour |
| | | // { |
| | | // [SerializeField] ScrollRect m_ScrollRect; |
| | | // [SerializeField] RectTransform m_Container; |
| | | public class FunctionButtonGroup : MonoBehaviour |
| | | { |
| | | [SerializeField] ScrollRect m_ScrollRect; |
| | | [SerializeField] RectTransform m_Container; |
| | | |
| | | // public int unLockedCount { |
| | | // get { |
| | | // var count = 0; |
| | | // foreach (var button in functionButtons.Values) |
| | | // { |
| | | // if (button.state != TitleBtnState.Locked) |
| | | // { |
| | | // count++; |
| | | // } |
| | | // } |
| | | public int unLockedCount { |
| | | get { |
| | | var count = 0; |
| | | foreach (var button in functionButtons.Values) |
| | | { |
| | | if (button.state != TitleBtnState.Locked) |
| | | { |
| | | count++; |
| | | } |
| | | } |
| | | |
| | | // return count; |
| | | // } |
| | | // } |
| | | return count; |
| | | } |
| | | } |
| | | |
| | | // int currentOrder = 0; |
| | | // List<int> orders = new List<int>(); |
| | | // Dictionary<int, FunctionButton> functionButtons = new Dictionary<int, FunctionButton>(); |
| | | int currentOrder = 0; |
| | | List<int> orders = new List<int>(); |
| | | Dictionary<int, FunctionButton> functionButtons = new Dictionary<int, FunctionButton>(); |
| | | |
| | | // public void Register(FunctionButton button) |
| | | // { |
| | | // functionButtons[button.order] = button; |
| | | // if (!orders.Contains(button.order)) |
| | | // { |
| | | // orders.Add(button.order); |
| | | // orders.Sort(OrderCompare); |
| | | // } |
| | | public void Register(FunctionButton button) |
| | | { |
| | | functionButtons[button.order] = button; |
| | | if (!orders.Contains(button.order)) |
| | | { |
| | | orders.Add(button.order); |
| | | orders.Sort(OrderCompare); |
| | | } |
| | | |
| | | // if (m_ScrollRect != null) |
| | | // { |
| | | // m_ScrollRect.horizontal = functionButtons.Count > 5; |
| | | // } |
| | | // } |
| | | if (m_ScrollRect != null) |
| | | { |
| | | m_ScrollRect.horizontal = functionButtons.Count > 5; |
| | | } |
| | | } |
| | | |
| | | // public void ChangeHorizontal(bool move) |
| | | // { |
| | | // if (m_ScrollRect != null) |
| | | // { |
| | | // m_ScrollRect.horizontal = move; |
| | | // } |
| | | // } |
| | | public void ChangeHorizontal(bool move) |
| | | { |
| | | if (m_ScrollRect != null) |
| | | { |
| | | m_ScrollRect.horizontal = move; |
| | | } |
| | | } |
| | | |
| | | // public void ChangeHorizontalPos(float index) |
| | | // { |
| | | // if (m_ScrollRect != null) |
| | | // { |
| | | // m_ScrollRect.horizontalNormalizedPosition = index; |
| | | // } |
| | | // } |
| | | // public void UnRegister(FunctionButton button) |
| | | // { |
| | | // if (functionButtons.ContainsKey(button.order)) |
| | | // { |
| | | // functionButtons.Remove(button.order); |
| | | // } |
| | | public void ChangeHorizontalPos(float index) |
| | | { |
| | | if (m_ScrollRect != null) |
| | | { |
| | | m_ScrollRect.horizontalNormalizedPosition = index; |
| | | } |
| | | } |
| | | public void UnRegister(FunctionButton button) |
| | | { |
| | | if (functionButtons.ContainsKey(button.order)) |
| | | { |
| | | functionButtons.Remove(button.order); |
| | | } |
| | | |
| | | // if (orders.Contains(button.order)) |
| | | // { |
| | | // orders.Remove(button.order); |
| | | // orders.Sort(OrderCompare); |
| | | // } |
| | | if (orders.Contains(button.order)) |
| | | { |
| | | orders.Remove(button.order); |
| | | orders.Sort(OrderCompare); |
| | | } |
| | | |
| | | // if (m_ScrollRect != null) |
| | | // { |
| | | // m_ScrollRect.horizontal = functionButtons.Count > 5; |
| | | // } |
| | | // } |
| | | if (m_ScrollRect != null) |
| | | { |
| | | m_ScrollRect.horizontal = functionButtons.Count > 5; |
| | | } |
| | | } |
| | | |
| | | // public void NotifyToggleOn(FunctionButton button) |
| | | // { |
| | | public void NotifyToggleOn(FunctionButton button) |
| | | { |
| | | |
| | | // if (button.state == TitleBtnState.Click) |
| | | // { |
| | | // currentOrder = button.order; |
| | | // for (int i = 0; i < orders.Count; i++) |
| | | // { |
| | | // if (!functionButtons.ContainsKey(orders[i])) |
| | | // { |
| | | // Debug.LogFormat("<color=#ff0000ff>{0} {1}</color>", orders[i], button.name); |
| | | // } |
| | | // var functionButton = functionButtons[orders[i]]; |
| | | // if (functionButton != button && functionButton.state != TitleBtnState.Locked) |
| | | // { |
| | | // functionButton.state = TitleBtnState.Normal; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | if (button.state == TitleBtnState.Click) |
| | | { |
| | | currentOrder = button.order; |
| | | for (int i = 0; i < orders.Count; i++) |
| | | { |
| | | if (!functionButtons.ContainsKey(orders[i])) |
| | | { |
| | | Debug.LogFormat("<color=#ff0000ff>{0} {1}</color>", orders[i], button.name); |
| | | } |
| | | var functionButton = functionButtons[orders[i]]; |
| | | if (functionButton != button && functionButton.state != TitleBtnState.Locked) |
| | | { |
| | | functionButton.state = TitleBtnState.Normal; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // public void TriggerByOrder(int targetOrder) |
| | | // { |
| | | // for (int i = 0; i < orders.Count; i++) |
| | | // { |
| | | // var order = orders[i]; |
| | | // if (order == targetOrder) |
| | | // { |
| | | // functionButtons[order].Invoke(true); |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | public void TriggerByOrder(int targetOrder) |
| | | { |
| | | for (int i = 0; i < orders.Count; i++) |
| | | { |
| | | var order = orders[i]; |
| | | if (order == targetOrder) |
| | | { |
| | | functionButtons[order].Invoke(true); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // public void TriggerLast() |
| | | // { |
| | | // var index = orders.IndexOf(currentOrder); |
| | | // if (index < 0) |
| | | // { |
| | | // return; |
| | | // } |
| | | public void TriggerLast() |
| | | { |
| | | var index = orders.IndexOf(currentOrder); |
| | | if (index < 0) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | // var loopTimes = 0; |
| | | // while (loopTimes < 2) |
| | | // { |
| | | // index--; |
| | | // if (index < 0) |
| | | // { |
| | | // index = orders.Count - 1; |
| | | // loopTimes++; |
| | | // } |
| | | var loopTimes = 0; |
| | | while (loopTimes < 2) |
| | | { |
| | | index--; |
| | | if (index < 0) |
| | | { |
| | | index = orders.Count - 1; |
| | | loopTimes++; |
| | | } |
| | | |
| | | // var next = orders[index]; |
| | | // if (functionButtons[next].state != TitleBtnState.Locked) |
| | | // { |
| | | // functionButtons[next].Invoke(false); |
| | | // break; |
| | | // } |
| | | // } |
| | | var next = orders[index]; |
| | | if (functionButtons[next].state != TitleBtnState.Locked) |
| | | { |
| | | functionButtons[next].Invoke(false); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | // } |
| | | } |
| | | |
| | | // public void TriggerNext() |
| | | // { |
| | | // var index = orders.IndexOf(currentOrder); |
| | | // if (index < 0) |
| | | // { |
| | | // return; |
| | | // } |
| | | public void TriggerNext() |
| | | { |
| | | var index = orders.IndexOf(currentOrder); |
| | | if (index < 0) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | // var loopTimes = 0; |
| | | // while (loopTimes < 2) |
| | | // { |
| | | // index++; |
| | | // if (index > orders.Count - 1) |
| | | // { |
| | | // index = 0; |
| | | // loopTimes++; |
| | | // } |
| | | var loopTimes = 0; |
| | | while (loopTimes < 2) |
| | | { |
| | | index++; |
| | | if (index > orders.Count - 1) |
| | | { |
| | | index = 0; |
| | | loopTimes++; |
| | | } |
| | | |
| | | // var next = orders[index]; |
| | | // if (functionButtons[next].state != TitleBtnState.Locked) |
| | | // { |
| | | // functionButtons[next].Invoke(false); |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | var next = orders[index]; |
| | | if (functionButtons[next].state != TitleBtnState.Locked) |
| | | { |
| | | functionButtons[next].Invoke(false); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // public bool IsFirst() |
| | | // { |
| | | // return orders.Count > 0 && currentOrder == orders[0]; |
| | | // } |
| | | public bool IsFirst() |
| | | { |
| | | return orders.Count > 0 && currentOrder == orders[0]; |
| | | } |
| | | |
| | | // public bool IsLast() |
| | | // { |
| | | // return orders.Count > 0 && currentOrder == orders[orders.Count - 1]; |
| | | // } |
| | | public bool IsLast() |
| | | { |
| | | return orders.Count > 0 && currentOrder == orders[orders.Count - 1]; |
| | | } |
| | | |
| | | // public void GotoOrder(int order) |
| | | // { |
| | | // if (m_ScrollRect != null) |
| | | // { |
| | | // var index = orders.IndexOf(order); |
| | | // if (m_ScrollRect.horizontal) |
| | | // { |
| | | // m_ScrollRect.horizontalNormalizedPosition = (float)index / orders.Count; |
| | | // } |
| | | // else if (m_ScrollRect.vertical) |
| | | // { |
| | | // m_ScrollRect.verticalNormalizedPosition = (float)index / orders.Count; |
| | | // } |
| | | // } |
| | | // } |
| | | public void GotoOrder(int order) |
| | | { |
| | | if (m_ScrollRect != null) |
| | | { |
| | | var index = orders.IndexOf(order); |
| | | if (m_ScrollRect.horizontal) |
| | | { |
| | | m_ScrollRect.horizontalNormalizedPosition = (float)index / orders.Count; |
| | | } |
| | | else if (m_ScrollRect.vertical) |
| | | { |
| | | m_ScrollRect.verticalNormalizedPosition = (float)index / orders.Count; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // private int OrderCompare(int a, int b) |
| | | // { |
| | | // return a < b ? -1 : 1; |
| | | // } |
| | | private int OrderCompare(int a, int b) |
| | | { |
| | | return a < b ? -1 : 1; |
| | | } |
| | | |
| | | // public FunctionButton AddFunction(string pattern, int order, int functionId, string title, int redpointId) |
| | | // { |
| | | // if (m_Container == null) |
| | | // { |
| | | // return null; |
| | | // } |
| | | public FunctionButton AddFunction(string pattern, int order, int functionId, string title, int redpointId) |
| | | { |
| | | if (m_Container == null) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | // var instance = UIUtility.CreateWidget(pattern, string.Concat("Function_", order)); |
| | | // instance.transform.SetParentEx(this.m_Container, Vector3.zero, Quaternion.identity, Vector3.one); |
| | | var instance = UIUtility.CreateWidget(pattern, string.Concat("Function_", order)); |
| | | instance.transform.SetParentEx(this.m_Container, Vector3.zero, Quaternion.identity, Vector3.one); |
| | | |
| | | // var functionButton = instance.GetComponent<FunctionButton>(); |
| | | // functionButton.functionId = functionId; |
| | | // functionButton.order = order; |
| | | // functionButton.title.text = title; |
| | | var functionButton = instance.GetComponent<FunctionButton>(); |
| | | functionButton.functionId = functionId; |
| | | functionButton.order = order; |
| | | functionButton.title.text = title; |
| | | |
| | | // functionButton.group = this; |
| | | // functionButton.redpoint.redpointId = redpointId; |
| | | // functionButtons[order] = functionButton; |
| | | functionButton.group = this; |
| | | functionButton.redpoint.redpointId = redpointId; |
| | | functionButtons[order] = functionButton; |
| | | |
| | | // functionButton.SetActive(functionButton.functionId != -1); |
| | | // return functionButton; |
| | | // } |
| | | functionButton.SetActive(functionButton.functionId != -1); |
| | | return functionButton; |
| | | } |
| | | |
| | | // public void SetFunctionListener(int order, UnityAction callBack) |
| | | // { |
| | | // if (functionButtons.ContainsKey(order)) |
| | | // { |
| | | // functionButtons[order].SetListener(callBack); |
| | | // } |
| | | // } |
| | | public void SetFunctionListener(int order, UnityAction callBack) |
| | | { |
| | | if (functionButtons.ContainsKey(order)) |
| | | { |
| | | functionButtons[order].SetListener(callBack); |
| | | } |
| | | } |
| | | |
| | | // public void SetFunctionButtonActive(int order, bool isShow) |
| | | // { |
| | | // if (functionButtons.ContainsKey(order)) |
| | | // { |
| | | // functionButtons[order].SetActive(isShow); |
| | | // } |
| | | // } |
| | | public void SetFunctionButtonActive(int order, bool isShow) |
| | | { |
| | | if (functionButtons.ContainsKey(order)) |
| | | { |
| | | functionButtons[order].SetActive(isShow); |
| | | } |
| | | } |
| | | |
| | | // public RedPointState GetFunctionButtonRedPointState(int order) |
| | | // { |
| | | // if (functionButtons.ContainsKey(order)) |
| | | // { |
| | | // return RedpointCenter.Instance.GetRedpointState(functionButtons[order].redpoint.redpointId); |
| | | // } |
| | | public RedPointState GetFunctionButtonRedPointState(int order) |
| | | { |
| | | if (functionButtons.ContainsKey(order)) |
| | | { |
| | | return RedpointCenter.Instance.GetRedpointState(functionButtons[order].redpoint.redpointId); |
| | | } |
| | | |
| | | // return RedPointState.None; |
| | | // } |
| | | return RedPointState.None; |
| | | } |
| | | |
| | | // public FunctionButton GetFunctionBtn(int order) |
| | | // { |
| | | // if (functionButtons.ContainsKey(order)) |
| | | // { |
| | | // return functionButtons[order]; |
| | | // } |
| | | // return null; |
| | | // } |
| | | // } |
| | | public FunctionButton GetFunctionBtn(int order) |
| | | { |
| | | if (functionButtons.ContainsKey(order)) |
| | | { |
| | | return functionButtons[order]; |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | // } |
| | | } |
| | | |
| | | |
| | | |