예제 #1
0
 public virtual void StartScene(LoadingMenuSceneInfo loadingSceneInfo)
 {
     if (opened)
     {
         OnButtonClicked();
     }
 }
        public void StartMenuScene(UserEncounter userEncounter, ILoadingScreen loadingScreen, MenuArea menuArea)
        {
            ImageHolder.BeginHoldingData();
            var categories    = GetMenuEncountersInfo(userEncounter);
            var menuSceneInfo = new LoadingMenuSceneInfo(userEncounter.User, loadingScreen, menuArea, categories);

            MenuSceneStarter.StartScene(menuSceneInfo);
        }
        protected virtual void ReturnToMainMenu()
        {
            ImageHolder.BeginHoldingData();
            var sceneInfo     = WriterSceneInfoSelectedListener.CurrentValue.SceneInfo;
            var categories    = MenuInfoReader.GetMenuEncountersInfo(sceneInfo.User);
            var menuSceneInfo = new LoadingMenuSceneInfo(sceneInfo.User, sceneInfo.LoadingScreen, MenuArea.InitialSelection, categories);

            MenuSceneStarter.StartScene(menuSceneInfo);
        }
        public virtual void StartScene(LoadingMenuSceneInfo data)
        {
            data.LoadingScreen?.Show();
            SignalBus.Fire <SceneChangedSignal>();

            var loading = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(ScenePath);

            loading.completed += (asyncOperation) => InitializeScene(data);
        }
        protected virtual void InitializeScene(LoadingMenuSceneInfo data)
        {
            if (SceneManager <LoadingMenuSceneInfo> .Instance == null)
            {
                Debug.LogError("Started scene UI is not Menu scene.");
                return;
            }

            SceneManager <LoadingMenuSceneInfo> .Instance.Display(data);
        }
 public abstract void Display(LoadingMenuSceneInfo sceneInfo);
 public LoadingMenuSceneInfoSelectedEventArgs(LoadingMenuSceneInfo sceneInfo) => SceneInfo = sceneInfo;