/// <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); }
/// <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; }
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; } }
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); }