Ejemplo n.º 1
0
    public void LerpTo(Vector3 targetPosition, Quaternion targetRotation, ZoomFinishedCallback zoomFinished)
    {
        if (whichZoom)
        {
            if (zooming2)
            {
                cancelZoom2 = true;
            }
            zooming1 = true;
        }
        else
        {
            if (zooming1)
            {
                cancelZoom1 = true;
            }
            zooming2 = true;
        }


        StartCoroutine(LerpToStep(targetPosition, targetRotation, whichZoom, zoomFinished));
        whichZoom = !whichZoom;
    }
Ejemplo n.º 2
0
    IEnumerator LerpToStep(Vector3 targetPosition, Quaternion targetRotation, bool firstZoom, ZoomFinishedCallback zoomFinished)
    {
        while (Quaternion.Angle(transform.rotation, targetRotation) > 0.01f &&
               Vector3.Distance(targetPosition, transform.position) > 0.01f)
        {
            if (firstZoom && cancelZoom1)
            {
                cancelZoom1 = false;
                zooming1    = false;
                if (zoomFinished != null)
                {
                    zoomFinished();
                }
                yield break;
            }
            else if (!firstZoom && cancelZoom2)
            {
                cancelZoom2 = false;
                zooming2    = false;
                if (zoomFinished != null)
                {
                    zoomFinished();
                }
                yield break;
            }
            transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, Time.deltaTime * 6.0f);
            transform.position = Vector3.Lerp(transform.position, targetPosition, Time.deltaTime * 8.0f);
            yield return(null);
        }

        if (firstZoom)
        {
            zooming1 = false;
        }
        else
        {
            zooming2 = false;
        }
        transform.rotation = targetRotation;
        transform.position = targetPosition;
        if (zoomFinished != null)
        {
            zoomFinished();
        }
    }
Ejemplo n.º 3
0
 public void GoBackToStart(ZoomFinishedCallback zoomFinished)
 {
     LerpTo(startPosition, startRotation, zoomFinished);
 }