Example #1
0
    IEnumerator ResetCamera(float Duration, Vector3 newCamPosition = default(Vector3))
    {
        IsMovingInternal = true;

        StartCoroutine(
            MovementCoroutines.MoveLerpTo(gameObject, newCamPosition, Duration)
            );
        StartCoroutine(
            MovementCoroutines.MoveLerpLocalTo(
                CameraObject,
                new Vector3(0, 0, OriginalZoomAxis),
                Duration
                )
            );

        Quaternion OriginalVerticalQuat   = Quaternion.Euler(new Vector3(OriginalVerticalAxis, 0, 0));
        Quaternion OriginalHorizontalQuat = Quaternion.Euler(new Vector3(0, OriginalHorizontalAxis, 0));

        StartCoroutine(
            MovementCoroutines.RotateLerpLocalTo(VerticalRig, OriginalVerticalQuat, Duration)
            );
        StartCoroutine(
            MovementCoroutines.RotateLerpTo(gameObject, OriginalHorizontalQuat, Duration)
            );

        ZoomAxis       = OriginalZoomAxis;
        VerticalAxis   = OriginalVerticalAxis;
        HorizontalAxis = OriginalHorizontalAxis;
        ElevateAxis    = OriginalElevateAxis;

        yield return(new WaitForSeconds(Duration));

        IsMovingInternal = false;
    }