Exemple #1
0
    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());
    }
Exemple #2
0
    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());
    }