using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; using System; /// /// /// public class MySortToggle : MonoBehaviour { /// /// /// public CustomizeSortRule curRule = CustomizeSortRule.none; /// /// /// private GameObject mAsc; /// /// /// private GameObject mDesc; /// /// 按钮的选中发生状态对外提供的处理回调 /// private Action OnSortRuleChangedCallBack; // Use this for initialization public void Init(Action _valueChangedCallBack) { OnSortRuleChangedCallBack = _valueChangedCallBack; mAsc = this.transform.Find("asc").gameObject; mDesc = this.transform.Find("desc").gameObject; mAsc.SetActive(false); mDesc.SetActive(false); EventTriggerListenerDialog.Get(gameObject).onClick = ((_btn) => { OnClicked(); }); } /// /// /// /// private void OnClicked() { if (curRule == CustomizeSortRule.none) { curRule = CustomizeSortRule.升序排序; } else if (curRule == CustomizeSortRule.升序排序) { curRule = CustomizeSortRule.降序排序; } else if (curRule == CustomizeSortRule.降序排序) { curRule = CustomizeSortRule.升序排序; } RefreshToggleState(); if (OnSortRuleChangedCallBack != null) { OnSortRuleChangedCallBack((int)curRule); } } /// /// /// void OnDestory() { curRule = CustomizeSortRule.none; RefreshToggleState(); OnSortRuleChangedCallBack = null; } /// /// /// void RefreshToggleState() { switch (curRule) { case CustomizeSortRule.none: mAsc.SetActive(false); mDesc.SetActive(false); break; case CustomizeSortRule.升序排序: mAsc.SetActive(true); mDesc.SetActive(false); break; case CustomizeSortRule.降序排序: mAsc.SetActive(false); mDesc.SetActive(true); break; } } } public enum CustomizeSortRule { none = 0, 升序排序 = 1, 降序排序 = 2, }