private IEnumerator TransitionFromDownTheRabbitHole(DownTheRabbitHole rabbitHole) { State = SceneState.TransitioningTo; Alice = rabbitHole.Alice; MainCamera = rabbitHole.MainCamera; GradientSkybox = rabbitHole.GradientSkybox; while (rabbitHole.State != SceneState.Complete) { yield return(new WaitForEndOfFrame()); } GradientSkybox.ChangeColor(1, Ground); GradientSkybox.ChangeColor(2, Sky); GradientSkybox.ChangeIntensity(1, 3); ActivateObjects(); Joker.StartCoroutine(Joker.MoveTo(Joker.transform.position + new Vector3(0, 0, 5))); Joker.StartCoroutine(Joker.LookAt(Alice.transform.position, Vector3.up)); while (Joker.IsMoving) { yield return(new WaitForEndOfFrame()); } MainCamera.StartCoroutine(MainCamera.Follow(Alice.gameObject, PositionOffsets[0])); MainCamera.StartCoroutine(MainCamera.Track(Alice.gameObject, LookPositionOffsets[0])); State = SceneState.Active; StartCoroutine(Game()); }
private IEnumerator TransitionFromDownTheRabbitHole(DownTheRabbitHole rabbitHole) { State = SceneState.TransitioningTo; Alice = rabbitHole.Alice; MainCamera = rabbitHole.MainCamera; GradientSkybox = rabbitHole.GradientSkybox; while (rabbitHole.State != SceneState.Complete) { yield return(new WaitForEndOfFrame()); } var triggerFlower = SceneObjects[0].GetComponent <Flower>(); triggerFlower.gameObject.SetActive(true); triggerFlower.StartCoroutine(triggerFlower.Shrink()); GradientSkybox.ChangeColor(1, Ground); GradientSkybox.ChangeColor(2, Sky); GradientSkybox.ChangeIntensity(1, 2); MainCamera.StartCoroutine(MainCamera.MoveTo(Alice.transform.position + Vector3.up * 5)); MainCamera.StartCoroutine(MainCamera.Track(Alice.gameObject, LookPositionOffsets[0])); while (GradientSkybox.Intensity < 1) { yield return(new WaitForEndOfFrame()); } ActivateObjects(); while (Alice.IsMoving) { yield return(new WaitForEndOfFrame()); } MainCamera.StartCoroutine(MainCamera.RotateAround(Alice.transform.position, PositionOffsets[0])); State = SceneState.Active; StartCoroutine(Game()); }