// //-------------------------------------------------------- // // [Author]: 第二世界 // // [ Date ]: Tuesday, October 31, 2017 // //-------------------------------------------------------- // using UnityEngine; // using System.Collections; // using System.Collections.Generic; // using UnityEngine.UI; // using UnityEngine.Events; // namespace vnxbqy.UI // { // 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++; // } // } // return count; // } // } // int currentOrder = 0; // List orders = new List(); // Dictionary functionButtons = new Dictionary(); // 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; // } // } // 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); // } // if (orders.Contains(button.order)) // { // orders.Remove(button.order); // orders.Sort(OrderCompare); // } // if (m_ScrollRect != null) // { // m_ScrollRect.horizontal = functionButtons.Count > 5; // } // } // 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("{0} {1}", 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 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 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; // } // 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; // } // } // } // public bool IsFirst() // { // return orders.Count > 0 && currentOrder == orders[0]; // } // 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; // } // } // } // 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; // } // 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.functionId = functionId; // functionButton.order = order; // functionButton.title.text = title; // functionButton.group = this; // functionButton.redpoint.redpointId = redpointId; // functionButtons[order] = 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 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); // } // return RedPointState.None; // } // public FunctionButton GetFunctionBtn(int order) // { // if (functionButtons.ContainsKey(order)) // { // return functionButtons[order]; // } // return null; // } // } // }