Exemple #1
0
    /// <summary>
    /// Rotate the camera towards the destination rotation, slowing down while reaching it.
    /// </summary>
    /// <returns></returns>
    private IEnumerator NormalLerpRotating(CameraTarget target, TargetParameters.StaticTargetRotationParameters parameters)
    {
        while (Quaternion.Angle(transform.rotation, target.transform.rotation) > parameters.LerpThreshold)
        {
            transform.rotation = Quaternion.Slerp(transform.rotation, target.transform.rotation, parameters.LerpSpeed * Time.deltaTime);
            yield return(null);
        }

        CameraEventSystem.CameraTargetRotationReached(target, parameters);
    }
Exemple #2
0
    /// <summary>
    /// Move the camera towards the destination, slowing down while approaching.
    /// </summary>
    /// <returns></returns>
    private IEnumerator NormalLerpPositioning(CameraTarget target, TargetParameters.StaticTargetPositionParameters parameters)
    {
        while (Vector3.Distance(transform.position, target.transform.position) > parameters.LerpThreshold)
        {
            transform.position = Vector3.Lerp(transform.position, target.transform.position, parameters.LerpSpeed * Time.deltaTime);
            yield return(null);
        }

        CameraEventSystem.CameraTargetPositionReached(target, parameters);
    }
Exemple #3
0
    /// <summary>
    /// Rotate the camera towards the destination rotation at constant speed, reaching in the given time.
    /// </summary>
    /// <returns></returns>
    private IEnumerator ConstantLerpRotating(CameraTarget target, TargetParameters.StaticTargetRotationParameters parameters)
    {
        float      elapsedRotatingLerpTime = 0;
        Quaternion startingRotation        = transform.rotation;
        float      step;

        while (elapsedRotatingLerpTime < parameters.Duration)
        {
            step = elapsedRotatingLerpTime / parameters.Duration;
            elapsedRotatingLerpTime += Time.deltaTime;
            transform.rotation       = Quaternion.Slerp(startingRotation, target.transform.rotation, step);
            yield return(null);
        }

        CameraEventSystem.CameraTargetRotationReached(target, parameters);
    }
Exemple #4
0
    /// <summary>
    /// Move the camera towards the destination at constant speed, reaching in the given time.
    /// </summary>
    /// <returns></returns>
    private IEnumerator ConstantLerpPositioning(CameraTarget target, TargetParameters.StaticTargetPositionParameters parameters)
    {
        float   elapsedPositioningLerpTime = 0;
        Vector3 startingPosition           = transform.position;
        float   step;

        while (elapsedPositioningLerpTime < parameters.Duration)
        {
            step = elapsedPositioningLerpTime / parameters.Duration;
            elapsedPositioningLerpTime += Time.deltaTime;
            transform.position          = Vector3.Lerp(startingPosition, target.transform.position, step);
            yield return(null);
        }

        CameraEventSystem.CameraTargetPositionReached(target, parameters);
    }
Exemple #5
0
 public void SetDynamicCameraTarget(CameraTarget cameraTarget, TargetParameters.DynamicTargetPositionParameters posParameters, TargetParameters.DynamicTargetRotationParameters rotParameters)
 {
     CameraEventSystem.SetCameraDynamicTargetPosition(cameraTarget.gameObject, posParameters);
     CameraEventSystem.SetCameraDynamicTargetRotation(cameraTarget.gameObject, rotParameters);
 }
Exemple #6
0
 public void SetStaticCameraTarget(CameraTarget cameraTarget, TargetParameters.StaticTargetPositionParameters posParameters, TargetParameters.StaticTargetRotationParameters rotParameters)
 {
     CameraEventSystem.SetCameraStaticTargetPosition(cameraTarget, posParameters);
     CameraEventSystem.SetCameraStaticTargetRotation(cameraTarget, rotParameters);
 }
Exemple #7
0
 public void SetStaticCameraTarget(CameraTarget cameraTarget, TargetParameters.StaticTargetRotationParameters parameters)
 {
     CameraEventSystem.SetCameraStaticTargetRotation(cameraTarget, parameters);
 }
Exemple #8
0
 /// <summary>
 /// Immediately rotate the camera to match the target rotation.
 /// </summary>
 private void ImmediateRotating(CameraTarget target, TargetParameters.StaticTargetRotationParameters parameters)
 {
     transform.rotation = target.transform.rotation;
     CameraEventSystem.CameraTargetRotationReached(target, parameters);
 }