private IEnumerator TransitionToNightmare(Nightmatrix nightmatrix, float multiplier = 1f) { platformerPhase.gameObject.SetActive(false); Vector3 movement = GetMovement(platformerPhase.transform.position, nightmatrix); yield return(MoveTransitionEffect(platformerPhase.transform, movement * multiplier, false, nightmatrix.transform)); shooterPhase.transform.position = transitionEffect.transform.position; if (Physics2D.CircleCast(transitionEffect.transform.position, .1f, Vector2.one, .1f, 1 << LayerMask.NameToLayer("Ground"))) { if (movement != Vector3.zero) { StartCoroutine(TransitionToDream(nightmatrix, 1.5f)); } else { shooterPhase.gameObject.SetActive(true); Die(); } } else { shooterPhase.gameObject.SetActive(true); targetTransform = shooterPhase.transform; cameraPriorityManager.SetFocus(CameraPriorityManager.GameState.Shooter); shooterPhase.SwitchIn(nightmatrix.transform.position, nightmatrix.GetComponent <Nightmatrix>()); } }