Hi guys,
A quick question…
I have a target and a Camera which moves back and forth (Vector3.forward) but I want to limit the movement with min and max distance from target. When distance from target to camera is 1000 it stops, when distance 6000 camera stops.
What I did so far is using Vector3.ClamMadnitude , but it clamps only maximum distance like radius.
How to restrict camera movement ?
// Move Camera
cameraMove = Vector3.forward * touchDistanceDifference * zoomSpeed;
transform.Translate(cameraMove * Time.deltaTime);
// Find minimal camera position
Vector3 minPosition = (transform.position - cameraRig.position).normalized * minZoomDistance;
// Find maximal camera position
Vector3 maxPosition = (transform.position - cameraRig.position).normalized * maxZoomDistance;
// Find distance / radius where camera can go
float movementRange = (maxPosition - minPosition).magnitude;
// Calculate the distance of the new position from the center point
Vector3 offset = transform.position - minPosition;
// Clamp the length to the specified radius / distance
transform.position = minPosition + Vector3.ClampMagnitude(offset, movementRange);