コード例 #1
0
        /// <summary>
        /// Internal request for scene transition
        /// </summary>
        private IEnumerator ChangeInterfaceScreenEnumerator(InterfaceScreen target, bool animate)
        {
            // Execute fade out animation
            if (animate)
            {
                SceneService.Instance.SetCanvasEnabled(true);
                yield return(StartCoroutine(
                                 SceneService.Instance.PlayFadeAnimation(0f, 1f, SceneService.Instance.BlackOverlay)));
            }

            // Deactivate previous screen
            if (_currentActiveScreen != null)
            {
                _currentActiveScreen.gameObject.SetActive(false);
            }

            // Activate next screen
            _currentActiveScreen = target;
            _currentActiveScreen.gameObject.SetActive(true);

            // Execute fade in animation
            if (animate)
            {
                yield return(StartCoroutine(
                                 SceneService.Instance.PlayFadeAnimation(1f, 0f, SceneService.Instance.BlackOverlay)));

                SceneService.Instance.SetCanvasEnabled(false);
            }
        }
コード例 #2
0
    IEnumerator LoadScreen(InterfaceScreen screen, bool fade)
    {
        InTransition = true;
        yield return(StartCoroutine(ChangeScreenRoutine(screen, fade)));

        InTransition = false;
    }
コード例 #3
0
 /// <summary>
 /// Core transition method, use this to transition from one screen to another
 /// </summary>
 public void ChangeInterfaceScreenWithoutFade(InterfaceScreen screen)
 {
     if (InTransition)
     {
         return;
     }
     StartCoroutine(ChangeInterfaceScreenEnumerator(screen, false));
 }
コード例 #4
0
 /// <summary>
 /// Core transition method, use this to transition from one screen to another
 /// </summary>
 public void ChangeScreen(InterfaceScreen screen)
 {
     if (InTransition)
     {
         return;
     }
     StartCoroutine(ChangeScreenRoutine(screen, false));
 }
コード例 #5
0
    /// <summary>
    /// Core transition method, use this to transition from one screen to another with fade
    /// </summary>
    public void ChangeScreenWithFade(InterfaceScreen screen)
    {
        if (InTransition)
        {
            return;
        }

        StartCoroutine(ChangeScreenRoutine(screen, true));
    }
コード例 #6
0
    IEnumerator ChangeScreen(InterfaceScreen target, bool animate)
    {
        if (animate)
        {
            GameSceneManager.Instance.SetCanvasEnabled(true);
            yield return(StartCoroutine(GameSceneManager.Instance.PlayFadeAnimation(0f, 1f, GameSceneManager.Instance.blackOverlay)));
        }
        if (ActiveScreen != null)
        {
            ActiveScreen.gameObject.SetActive(false);
        }
        ActiveScreen = target;
        ActiveScreen.gameObject.SetActive(true);
        if (animate)
        {
            yield return(StartCoroutine(GameSceneManager.Instance.PlayFadeAnimation(1f, 0f, GameSceneManager.Instance.blackOverlay)));

            GameSceneManager.Instance.SetCanvasEnabled(false);
        }
    }
コード例 #7
0
 public void ChangeScreen(InterfaceScreen screen)
 {
     StartCoroutine(ChangeScreen(screen, false));
 }
コード例 #8
0
 public void ChangeScreenAndFade(InterfaceScreen screen)
 {
     StartCoroutine(ChangeScreen(screen, true));
 }
コード例 #9
0
ファイル: Interface.cs プロジェクト: PistaMista/Battleships
    /// <summary>
    /// /// Switches the menu.
    /// </summary>
    /// <param name="menuName">Name of the menu to switch to. (The name of its game object)</param>
    public static void SwitchMenu(string menuName)
    {
        if (menus.ContainsKey(menuName))
        {
            if (!menus[menuName].overrideMenuSwitching || overrideMenu == null)
            {
                if (menus[menuName] != currentMenu)
                {
                    if (overrideMenu == null)
                    {
                        if (currentMenu != null)
                        {
                            currentMenu.gameObject.SetActive(false);
                            currentMenu.OnSwitchFrom();
                        }

                        if (!menus[menuName].overrideMenuSwitching)
                        {
                            currentMenu = menus[menuName];
                            currentMenu.gameObject.SetActive(true);
                            currentMenu.OnSwitchTo();
                        }
                        else
                        {
                            overrideMenu = menus[menuName];
                            overrideMenu.gameObject.SetActive(true);
                            overrideMenu.OnSwitchTo();
                        }
                    }
                    else
                    {
                        currentMenu = menus[menuName];
                    }
                }
            }
            else
            {
                if (menus[menuName] != overrideMenu)
                {
                    overrideMenu.gameObject.SetActive(false);
                    overrideMenu.OnSwitchFrom();

                    overrideMenu = menus[menuName];
                    overrideMenu.OnSwitchTo();
                }
            }
        }
        else
        {
            if (menuName == "CANCEL_OVERRIDE" && overrideMenu != null)
            {
                overrideMenu.gameObject.SetActive(false);
                overrideMenu.OnSwitchFrom();
                if (currentMenu != null)
                {
                    currentMenu.OnSwitchTo();
                    currentMenu.gameObject.SetActive(true);
                }
                overrideMenu = null;
            }
        }
    }