コード例 #1
0
    private IEnumerator OpenScreenSequence(MenuScreen menuScreen, bool withAnimation)
    {
        globalCanvasGroup.interactable   = false;
        globalCanvasGroup.blocksRaycasts = false;
        if (screens.currentScreen)
        {
            if (withAnimation)
            {
                screens.currentScreen.Close();
                yield return(new WaitForSeconds(screens.currentScreen.closeDuration));

                var startSettings = screens.currentScreen.defaultHeartLocation;
                screens.currentScreen = menuScreen;
                var   currentSettings = screens.currentScreen.defaultHeartLocation;
                float t = 0;
                while (t < 1)
                {
                    yield return(new WaitForFixedUpdate());

                    t += Time.fixedDeltaTime * 6;
                    var realT = heartMovementCurve.Evaluate(t);
                    uiHeart.Reposition(new HeartSettings(
                                           Vector2.Lerp(startSettings.position, currentSettings.position, realT),
                                           Mathf.Lerp(startSettings.rotation, currentSettings.rotation, realT),
                                           Mathf.Lerp(startSettings.scale, currentSettings.scale, realT)
                                           ));
                }
            }
            else
            {
                screens.currentScreen.Close(false);
                screens.currentScreen = menuScreen;
                var currentSettings = screens.currentScreen.defaultHeartLocation;
                uiHeart.Reposition(currentSettings);
            }
        }
        else
        {
            screens.currentScreen = menuScreen;
            var currentSettings = screens.currentScreen.defaultHeartLocation;
            uiHeart.Reposition(currentSettings);
        }

        if (withAnimation)
        {
            menuScreen.Open();
            yield return(new WaitForSeconds(screens.currentScreen.openDuration));
        }
        else
        {
            menuScreen.Open(false);
        }

        globalCanvasGroup.interactable   = true;
        globalCanvasGroup.blocksRaycasts = true;
    }
コード例 #2
0
 public void OpenMainScreen()
 {
     optionsMenu.Close();
     mainMenu.Open();
 }
コード例 #3
0
 public void OpenOptionsScreen()
 {
     mainMenu.Close();
     optionsMenu.SetSelectedOptionIndex(0);
     optionsMenu.Open();
 }