unitycoder_com Hi! here are 3 code examples. I will update the plugin with these for the next update:
public void MoveCameraToInstant(Vector3 targetPosition)
{
finalOffset = targetPosition;
finalPosition = CalculateNewPosition(finalOffset, finalRotation, finalDistance);
ApplyToCamera();
}
public void MoveCameraTo(Vector3 targetPosition)
{
StopFollow();
Vector3 currentOffset = finalOffset;
disableMoves = true;
float lerp = 0;
Tween t = DOTween.To(() => lerp, x => lerp = x, 1, focusTweenDuration).SetEase(focusEase);
t.OnUpdate(() =>
{
finalOffset = Vector3.Lerp(currentOffset, targetPosition, lerp);
finalPosition = CalculateNewPosition(finalOffset, finalRotation, finalDistance);
ApplyToCamera();
})
.OnComplete(() =>
{
disableMoves = false;
});
}
public void MoveCameraTo(Vector3 targetPosition, Quaternion targetRotation, float targetDistance)
{
StopFollow();
Quaternion currentRot = finalRotation;
float currentDist = finalDistance;
Vector3 currentOffset = finalOffset;
disableMoves = true;
float lerp = 0;
Tween t = DOTween.To(() => lerp, x => lerp = x, 1, focusTweenDuration).SetEase(focusEase);
t.OnUpdate(() =>
{
finalOffset = Vector3.Lerp(currentOffset, targetPosition, lerp);
finalRotation = Quaternion.Lerp(currentRot, targetRotation, lerp);
finalDistance = Mathf.Lerp(currentDist, targetDistance, lerp);
finalPosition = CalculateNewPosition(finalOffset, finalRotation, finalDistance);
ApplyToCamera();
})
.OnComplete(() =>
{
currentPitch = Pitch = targetRotation.eulerAngles.x;
currentYaw = Yaw = targetRotation.eulerAngles.y;
disableMoves = false;
});
}