- Home /
2D Camera Smooth Follow with Dynamic Offset
I want the camera to follow a target (Player) but with an dynamic offset depending on the direction the Player is moving (or axis input), so the player can see ahead of itself.
I am using Scott Kovacs's fantastic script which worked easily:
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);
}
}
I have my head roughly around the idea, I will need a variable that is taken from the input.axis and applied as part of the transform.position = Vector3.SmoothDamp(transform.position, destination, velocity, dampTime).
I would like a vertical offset and horizontal offset that work at the same time if the player is moving diagonally.
Any tips would be very much welcome!
Your answer
![](https://koobas.hobune.stream/wayback/20220613110912im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Assign spawned object to SmoothFollow target 1 Answer
How to Make the SmoothFollow Script Follow Faster? 1 Answer
Target Box not bounding targets 1 Answer
Smooth Follow Problem 1 Answer
Camera Target Switch By Tag HELP! 1 Answer