at 2D Camera "Smooth Follow" - Unity Answers i found pretty simplet and really nice working script for camera follow
var dampTime : float = 0.3; //offset from the viewport center to fix damping
private var velocity = Vector3.zero;
var target : Transform;
function Update() {
if(target) {
var point : Vector3 = camera.WorldToViewportPoint(target.position);
var delta : Vector3 = target.position - camera.ViewportToWorldPoint(Vector3(0.5, 0.5, point.z));
var destination : Vector3 = transform.position + delta;
// Set this to the Y position you want the camera locked to
destination.y = 0;
transform.position = Vector3.SmoothDamp(transform.position, destination, velocity, dampTime);
}
}
it’s almost perfect i just need put camera.ortographic size there to be able to zoom simultaneously so i tried to change Z coordinate to ortographic size and i can’t findout why it’s nor working (actually it’s zooming out all the time)
here’s my current script:
private void Update()
{
cameraPosition = new Vector3(target.x, target.y, camera.orthographicSize);
Vector3 difference = camera.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, 0f)) + Vector3.forward*camera.orthographicSize;
Vector3 delta = cameraPosition - difference;
Vector3 destinationMovement = cameraPosition + delta;
cameraPosition = Vector3.SmoothDamp(cameraPosition, destinationMovement, ref velocity, currentBoundaries.dampTimeMovement);
transform.position = new Vector3(cameraPosition.x, cameraPosition.y, transform.position.z);
camera.orthographicSize = cameraPosition.z;
}