Ejemplo n.º 1
0
        public void AnimateMenuExit()
        {
            //TODO: hack fix sometimes mediator is still there after the gameobject has been destroyed by Unity
            if (View != null)
            {
                View.StartExitAnimation(() => SceneMenuStateExitAnimationEndedSignal.Dispatch());

                if (MenuState.ExitBGM != BibaBGM.None)
                {
                    PlayBibaBGMSignal.Dispatch(MenuState.ExitBGM);
                }

                if (MenuState.ExitSFX != BibaSFX.None)
                {
                    PlayBibaSFXSignal.Dispatch(MenuState.ExitSFX);
                }
            }
        }
Ejemplo n.º 2
0
        public override void Execute()
        {
            if (BibaSceneStack.Count > 0)
            {
                var menuState = BibaSceneStack.Peek();
                if (menuState != null && menuState is SceneMenuState)
                {
                    var menuStateGo = BibaSceneStack.GetTopGameObjectForTopMenuState();
                    if (menuStateGo != null)
                    {
                        var menuStateMediator = menuStateGo.GetComponent <SceneMenuStateMediator>();
                        if (menuStateMediator != null)
                        {
                            Retain();

                            menuStateMediator.AnimateMenuExit();
                            SceneMenuStateExitAnimationEndedSignal.AddListener(ExitedAnimationCompleted);
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
 void ExitedAnimationCompleted()
 {
     SceneMenuStateExitAnimationEndedSignal.RemoveListener(ExitedAnimationCompleted);
     Release();
 }