- Home /
Smooth Follow Camera that Keeps Up
Hi all,
I'm working on a constant runner sidescrolling game, the player is constantly moving left to right at an ever-increasing speed, and when the player jumps he gains some extra speed for a limited time.
My camera follow code is as follows:
float dampTime = 0.2f;
Vector3 positionVelocity = Vector3.zero;
void LateUpdate() {
transform.position = Vector3.SmoothDamp(transform.position, targetPos, ref positionVelocity, dampTime);
}
Now this works fine at low speed, the camera follows smoothly when the player jumps. However as the player's speed increases the camera gets more and more left behind, with the player moving more and more to the right hand side of the screen.
I want to keep the distance between the player and the right hand side of the screen constant, nomatter his running speed, but also keep a smooth camera when he gains the short speed boost on jumping.
How is this possible?
Thanks!
Hi, have you tried reducing the value of dampTime when the speed is high? $$anonymous$$aybe try interpolate the dampTime value depending on the velocity. For example, if you have a LowVelocityDamp = 0.2f, a HighVelocityDamp = 0.1f, a $$anonymous$$axVelocity = ( your max positionVelocity.magnitude you can ever have). Then you use float currentDamp = $$anonymous$$athf.Lerp( LowVelocityDamp, HighVelocityDamp, positionVelocity.magnitude / $$anonymous$$axVelocity ). Then use this currentDamp in your SmoothDamp call. You can also have different values depending on your game state : with or without jump boosts or speed bonuses.
Your answer
Follow this Question
Related Questions
SmoothFollow to play catchup to player position 1 Answer
why target switching of smooth camera not very smooth ? 0 Answers
Changing Targets - Smooth Damping X and Z on SmoothFollowCamera 0 Answers
How to turn a camera inversely from another camera (Similar to a realistic mirror)? 1 Answer
Ideas for getting SmoothFollow camera to follow right behind? 0 Answers