public void ResetPlayer() { if (false == player.GetComponent <Animator>().GetCurrentAnimatorStateInfo(0).IsName("run")) { return; } PuzzleCheckPoint checkPoint = NM.LevelManager.CurLevel.GetCheckPoint(); if (checkPoint != null) { player.transform.position = checkPoint.transform.position; } else { player.transform.position = spawnPoint; } }
// 체크포인트 리스트업 할 것. public override IEnumerator PreEnter(Scene nextScene) { NMUI.Fade(0, 2); //인트로 사운트 페이트 아웃 시점 SoundManager sounds = SoundManager.instance; sounds.FadeOutSound(sounds.introBGM); sounds.PlaySound(sounds.mainBGM); sounds.FadeInSound(sounds.mainBGM); string empty = null; NMUI.SetActiveParent("Game"); //exitBtn = NMUI.GetUI<Button>("exit_btn"); continueBtn = NMUI.GetUI <Button>("continue_btn"); golobbyBtn = NMUI.GetUI <Button>("golobby_btn"); menu = NMUI.GetUI <Transform>("exit_menu").gameObject; menu.SetActive(false); //exitBtn.onClick.RemoveAllListeners(); //exitBtn.onClick.AddListener(ActiveMunu); NMManager manager = NMManager.Instance; manager.effect.PreEnter(); manager.input.PreEnter(CameraManager.Instance.GetCamera()); // 레벨에서 체크포인트 번호 가져와서 위치 세팅할 것. string sceneName = UnityEngine.SceneManagement.SceneManager.GetActiveScene().name; PuzzleCheckPoint checkpoint = null; if (sceneName.Contains("Zone")) { LevelManager.CurLevel.Init(); if (LevelManager.CurLevel.playData._zoneNumber != int.Parse(sceneName.Substring(4, 2))) { Debug.LogWarning("ZoneNumber Not Matched!!!"); } else { checkpoint = LevelManager.CurLevel.GetCheckPoint(); } } if (checkpoint != null) { manager.character.PreEnter(manager.input, checkpoint.transform.position); } else { GameObject startPoint = GameObject.FindGameObjectWithTag("SpawnPoint"); if (null == startPoint) { GameObject[] objs = nextScene.GetRootGameObjects(); for (int i = 0; i < objs.Length; i++) { if (objs[i].name == "SpawnPoint") { startPoint = objs[i]; break; } } } if (null != startPoint) { manager.character.PreEnter(manager.input, startPoint.transform.position); } } SceneManager.MoveGameObjectToScene(manager.character.player, nextScene); CameraManager.Instance.SetCameraActive(true); CameraManager.Instance.SetFollow(manager.character.player); yield break; }