- Home /
Lerp Third Person Camera Rotation
Hi,
I have a character with a third person camera positioned slightly above and behind.
If the player presses a key to turn left or right I want the camera to quickly start lerping 90 degrees left or right so the player can see what's there before having fully turned in that direction. If the player releases the key I want the camera to quickly lerp back to facing forward.
How can I achieve this effect?
Many thanks
Answer by robertbu · Jun 09, 2013 at 07:44 PM
Create an empty game object at the origin.
Move the camera to the origin
Move any camera tracking script from the camera to the empty game object
Setup any target variables in the tracking script
Then add this script to the camera:
#pragma strict
var speed = 65.0;
private var qTo : Quaternion;
function Start () {
qTo = transform.localRotation;
}
function Update() {
if (!Input.GetKey(KeyCode.LeftArrow) && !Input.GetKey(KeyCode.RightArrow))
qTo = Quaternion.identity;
else if (Input.GetKey(KeyCode.LeftArrow))
qTo = Quaternion.Euler(0.0, 90.0, 0.0);
else if (Input.GetKey(KeyCode.RightArrow))
qTo = Quaternion.Euler(0.0, -90.0, 0.0);
transform.localRotation = Quaternion.RotateTowards(transform.localRotation, qTo, speed * Time.deltaTime);
}
It works by modifying the local rotation.
Your answer
Follow this Question
Related Questions
Camera rotation script logic error? 0 Answers
Checking for quaternion values to not be NaN 4 Answers
Rotation, my script shouldn't work but does. 0 Answers
camera rotation apparent to player 1 Answer