Beispiel #1
0
        /// <summary>
        /// 确认进入下一关
        /// </summary>
        /// <param name="delay">Delay.</param>
        public void ConfirmEnterWithDelay(float delay)
        {
            //Debug.LogFormat("ConfirmEnterTime:{0}", Time.time);

            QuitEnterExitHUD();

            ExploreManager.Instance.exploreSceneReady = false;

            MapSetUpFrom from = MapSetUpFrom.LastLevel;

            ExploreManager.Instance.expUICtr.EnterLevelMaskShowAndHide(delegate {
                switch (exitType)
                {
                case ExitType.ToLastLevel:
                    from = MapSetUpFrom.NextLevel;
                    //ExploreManager.Instance.EnterLastLevel();
                    break;

                case ExitType.ToNextLevel:
                    ExploreManager.Instance.EnterNextLevel();
                    from = MapSetUpFrom.LastLevel;
                    break;
                }
                ExploreManager.Instance.battlePlayerCtr.isInEvent = false;
            }, from, delay);
        }
Beispiel #2
0
        /// <summary>
        /// 初始化探索场景
        /// </summary>
        /// <param name="from">From.</param>
        public void SetUpExploreView(MapSetUpFrom from)
        {
            // 标记探索场景 not ready
            exploreSceneReady = false;

            // 加载探索场景所需的游戏资源
            GameManager.Instance.gameDataCenter.InitExplorePrepareGameData();

            // 是否是最后一关
            bool isFinalChapter = Player.mainPlayer.currentLevelIndex == CommonData.maxLevelIndex;

            // 垃圾回收
            System.GC.Collect();

            DisableExploreInteractivity();

            // 生成地图
            newMapGenerator.SetUpMap(from);

            // 清除人物身上的字母碎片
            Player.mainPlayer.ClearCollectedCharacters();

            // 记录人物的存档位置和存档朝向
            //Player.mainPlayer.savePosition = battlePlayerCtr.transform.position;
            //Player.mainPlayer.saveTowards = battlePlayerCtr.towards;

            // 加载玩家数据
            //PlayerData playerData = GameManager.Instance.persistDataManager.LoadPlayerData();
            //// 初始化人物数据
            //Player.mainPlayer.SetUpPlayerWithPlayerData(playerData);

            // 存档
            SaveDataInExplore(null, false);

            // 初始化探索UI界面
            expUICtr.SetUpExploreCanvas();

            // 初始化玩家角色
            battlePlayerCtr.InitBattlePlayer();

            // 如果是终章
            if (isFinalChapter)
            {
                // 隐藏底部bar
                expUICtr.HideUpAndBottomUIs();
                // 加载终章画布
                GameManager.Instance.UIManager.SetUpCanvasWith(CommonData.finalChapterCanvasBundleName, "FinalChapterCanvas", delegate
                {
                    TransformManager.FindTransform("FinalChapterCanvas").GetComponent <FinalChapterViewControlller>().SetUpFinalChapterView();
                });
            }

            EnableExploreInteractivity();

            // 探索场景ready
            exploreSceneReady = true;
        }
Beispiel #3
0
        private IEnumerator MyEnterLevelMaskShowAndHide(CallBack callBack, MapSetUpFrom from, float delay)
        {
            yield return(new WaitForSeconds(delay));


            float tempAlpha = 0;
            float fadeSpeed = 3f;


            transitionMask.color = new Color(0, 0, 0, tempAlpha);

            transitionMask.gameObject.SetActive(true);


            while (tempAlpha < 1)
            {
                tempAlpha           += fadeSpeed * Time.deltaTime;
                transitionMask.color = new Color(0, 0, 0, tempAlpha);
                yield return(null);
            }

            tempAlpha = 1;

            if (callBack != null)
            {
                callBack();
            }

            yield return(new WaitUntil(() => ExploreManager.Instance.exploreSceneReady));

            //Debug.Break();

            while (tempAlpha > 0)
            {
                tempAlpha           -= fadeSpeed * Time.deltaTime;
                transitionMask.color = new Color(0, 0, 0, tempAlpha);
                yield return(null);
            }

            transitionMask.gameObject.SetActive(false);

            switch (from)
            {
            case MapSetUpFrom.LastLevel:
            case MapSetUpFrom.Home:
                //hintHUD.SetUpSingleTextTintHUD("数据已存档");
                //GameManager.Instance.soundManager.PlayAudioClip(CommonData.skillUpgradeAudioName);
                //ExploreManager.Instance.newMapGenerator.ManuallyPlaySavePointAnim();
                break;

            case MapSetUpFrom.NextLevel:
                break;
            }
        }
Beispiel #4
0
 public void EnterLevelMaskShowAndHide(CallBack callBack, MapSetUpFrom from, float delay = 0)
 {
     if (enterLevelMaskShowAndHideCoroutine != null)
     {
         StopCoroutine(enterLevelMaskShowAndHideCoroutine);
     }
     enterLevelMaskShowAndHideCoroutine = MyEnterLevelMaskShowAndHide(delegate {
         if (callBack != null)
         {
             callBack();
         }
         hintHUD.SetUpSingleTextTintHUD("数据已存档");
     }, from, delay);
     StartCoroutine(enterLevelMaskShowAndHideCoroutine);
 }