/// 初始化 public void Initialize() { if (_isInitialized) { return; } //记录默认显示的优先级 _defaultShowPriority = ShowPriority; _isInitialized = true; //初始化UI组件 UIComponent[] ccs = new UIComponent[100]; int ccCnt = 0; UIUtility.GetComponentsInChildren <UIComponent>(gameObject, ccs, ref ccCnt); if (ccs != null && ccCnt > 0) { if (_uiComponents == null) { _uiComponents = new JWObjList <UIComponent>(); } for (int i = 0; i < ccCnt; i++) { ccs[i].Initialize(this); //Cache _uiComponents.Add(ccs[i]); } } }
/// 返回计算得到的sortingOrder private int CalculateSortingOrder(UIFormPriority priority, int openOrder) { if (openOrder * Const_OpenOrderMask >= Const_PriorityOrderMask) { openOrder %= (Const_PriorityOrderMask / Const_OpenOrderMask); } return((IsOverlay() ? Const_OverlayOrderMask : 0) + ((int)priority * Const_PriorityOrderMask) + (openOrder * Const_OpenOrderMask)); }
//置优先级 public void SetPriority(UIFormPriority priority) { if (ShowPriority == priority) { return; } ShowPriority = priority; //这里需要即时修改sortingOrder SetDisplayOrder(_openOrder); //派发事件 DispatchFormEvent(UIFormEventType.PriorityChanged); }