public IEnumerator Transition(string newSceneName, BirthPointType birthPoint) { var options = SceneManager.LoadSceneAsync(newSceneName); options.allowSceneActivation = false; while (!options.isDone) { if (options.progress >= 0.9f) { options.allowSceneActivation = true; } if (!m_IsTransitioning) { m_IsTransitioning = true; yield return(Instance.StartCoroutine(SceneFader.FadeSceneIn(SceneFader.FadeType.Loading))); } else { yield return(null); } } Player.Instance.Redirect(birthPoint); yield return(StartCoroutine(SceneFader.FadeSceneOut())); m_IsTransitioning = false; }
public void Redirect(BirthPointType birthPoint) { var arrs = FindObjectsOfType <BirthPoint>(); foreach (var obj in arrs) { if (obj.birthPoint == birthPoint) { var targetPosition = obj.gameObject.transform.position; gameObject.transform.position = targetPosition; m_PrevPosition = targetPosition; m_NextPosition = targetPosition; SetFace(obj.faceType); break; } } }