示例#1
0
        public UIWindow GoToScreen(WindowTag windowTag, UnityEngine.Object param, bool removePrevious, bool deactivatePrevious = true)
        {
            //Close/deactivate previous window
            UIWindow lastWindow = GetLastWindow();

            if (removePrevious)
            {
                lastWindow.Close();
            }
            else if (deactivatePrevious)
            {
                DeactivateWindow(lastWindow);
            }

            //Open window
            UIWindow window = GetOpenedWindow(windowTag);

            if (window == null)
            {
                UIWindow prefab = Array.Find(screenPrefabs, val => val.WindowTag == windowTag);

                window = Instantiate(prefab);
                openeedWindows.Add(window);
            }
            else
            {
                ActivateWindow(window);
            }

            return(window);
        }
示例#2
0
        public UIWindow GetOpenedWindow(WindowTag screenName)
        {
            foreach (UIWindow window in openeedWindows)
            {
                if (window.WindowTag == screenName)
                {
                    return(window);
                }
            }

            return(null);
        }
示例#3
0
        //Use in Inspector
        public void GoToScreen(string windowName)
        {
            WindowTag windowTag = WindowTag.Undefined;

            try
            {
                windowTag = (WindowTag)Enum.Parse(typeof(WindowTag), windowName);
            }
            catch
            {
                Debug.LogError($"UIController | There are no screen for tag: {windowName}");
            }

            if (windowTag != WindowTag.Undefined)
            {
                GoToScreen(windowTag);
            }
        }
示例#4
0
 //Use in Code
 public UIWindow GoToScreen(WindowTag windowTag)
 {
     return(GoToScreen(windowTag, null, removePrevious: false));
 }