| | |
| | | uiStack.CopyTo(uiArray, 0); |
| | | |
| | | // 先按照UILayer进行排序,然后再按照栈顺序排序 |
| | | Array.Sort(uiArray, (a, b) => { |
| | | // 比较UI层级 |
| | | Dictionary<UIBase, int> uiOrderDict = new Dictionary<UIBase, int>(); |
| | | for (int i = 0; i < uiArray.Length; i++) |
| | | { |
| | | uiOrderDict[uiArray[i]] = i; |
| | | } |
| | | |
| | | Array.Sort(uiArray, (a, b) => |
| | | { |
| | | int layerCompare = a.uiLayer.CompareTo(b.uiLayer); |
| | | if (layerCompare != 0) |
| | | return layerCompare; |
| | | |
| | | // 同层级内,按照栈中的顺序排序 |
| | | return Array.IndexOf(uiArray, b).CompareTo(Array.IndexOf(uiArray, a)); |
| | | |
| | | return uiOrderDict[b].CompareTo(uiOrderDict[a]); |
| | | }); |
| | | |
| | | // 遍历排序后的UI数组,设置排序顺序 |