protected void SetupNewScene(TransitionPoint.TransitionType transitionType, TransitionDestination entrance) { if (entrance == null) { Debug.LogWarning("Restart information has not been set. "); return; } if (transitionType == TransitionPoint.TransitionType.DifferentZone) { SetZoneStart(entrance); } }
protected void SetEnteringGameObjectLocation(TransitionDestination entrance) { if (entrance == null) { Debug.LogWarning("Entering Transform's location has not been set yet. "); return; } Transform entranceLocation = entrance.transform; Transform enteringTransform = entrance.transitioningGameObject.transform; enteringTransform.position = entranceLocation.position; enteringTransform.rotation = entranceLocation.rotation; }
protected IEnumerator Transition(string newSceneName, bool resetInputValues, TransitionDestination.DestinationTag destinationTag, TransitionPoint.TransitionType transitionType = TransitionPoint.TransitionType.DifferentZone) { m_Transitioning = true; yield return(SceneManager.LoadSceneAsync(newSceneName)); TransitionDestination entrance = GetDestination(destinationTag); SetEnteringGameObjectLocation(entrance); SetupNewScene(transitionType, entrance); if (entrance != null) { entrance.onReachDestination.Invoke(); } m_Transitioning = false; }
protected void SetZoneStart(TransitionDestination entrance) { m_CurrentZoneScene = entrance.gameObject.scene; m_ZoneRestartDestinationTag = entrance.destinationTag; }