Example #1
0
        /// <summary>
        /// This method must be called only from UI.SetExclusive(). Do not call this directly
        /// </summary>
        public void AddToExclusiveListOnTop(UI ui)
        {
            int highestSortOrder = BaseSortOrder;

            if (mExclusiveList.Count > 0)
            {
                highestSortOrder = mExclusiveList[mExclusiveList.Count - 1]._UI.GetComponent <Canvas>().sortingOrder;
            }

            Canvas        uiCanvas      = ui.GetComponent <Canvas>();
            ExclusiveData exclusiveData = new ExclusiveData();
            int           existingExclusiveDataIndex = mExclusiveList.FindIndex(x => x._UI == ui);

            if (existingExclusiveDataIndex == -1)
            {
                exclusiveData = new ExclusiveData {
                    _UI = ui, _PreviousSortingOrder = uiCanvas.sortingOrder, _PreviousOverrideSorting = uiCanvas.overrideSorting
                }
            }
            ;
            else
            {
                exclusiveData = mExclusiveList[existingExclusiveDataIndex];
                mExclusiveList.RemoveAt(existingExclusiveDataIndex);
            }
            mExclusiveList.Add(exclusiveData);
            uiCanvas.overrideSorting = true;
            uiCanvas.sortingOrder    = highestSortOrder + 1;
            UI._GlobalExclusiveUI    = ui;
        }
Example #2
0
        /// <summary>
        /// This method must be called only from UI.RemoveExclusive(). Do not call this directly
        /// </summary>
        public void RemoveFromExclusiveList(UI ui)
        {
            int existingExclusiveDataIndex = mExclusiveList.FindIndex(x => x._UI == ui);

            if (existingExclusiveDataIndex != -1)
            {
                ExclusiveData exclusiveData = mExclusiveList[existingExclusiveDataIndex];
                Canvas        uiCanvas      = ui.GetComponent <Canvas>();
                uiCanvas.overrideSorting = exclusiveData._PreviousOverrideSorting;
                uiCanvas.sortingOrder    = exclusiveData._PreviousSortingOrder;
                mExclusiveList.RemoveAt(existingExclusiveDataIndex);
                UI._GlobalExclusiveUI = mExclusiveList.Count > 0 ? mExclusiveList[mExclusiveList.Count - 1]._UI : null;
            }
            else
            {
                Debug.LogWarning("Trying to remove UI that is not already present from the exclusive list: " + ui.name);
            }
        }