- Home /
custom SmoothFollow script camera position won't change
I have a custom SmoothFollow script due to the fact I have a game where the characters move around a 3D track and this way the camera keep nice and smooth behind the characters.
The only problem I have with it that no matter what I set the distance to it does not change the distance from the camera to the character. The height change does not change one thing as the height of the camera stays on the same level as the character is.
public Transform target;
public float distance = 5;
public float height = 35;
public float heightDamping = 2;
public float rotationDamping = 3;
private Vector3 v3To;
private Quaternion qTo;
void LateUpdate()
{
v3To = target.position - target.forward * distance;
v3To.y *= height;
transform.position = Vector3.Lerp(transform.position, v3To, heightDamping * Time.deltaTime);
qTo = Quaternion.LookRotation(target.position - transform.position, target.up);
transform.rotation = Quaternion.Slerp(transform.rotation, qTo, rotationDamping * Time.deltaTime);
}
The camera is following the character round perfectly I just want to have the position the camera is looking from to be a more normal 3rd person perspective and not like the camera is being dragged around by the camera...
transform.Translate(transform.up, transform);
ins$$anonymous$$d of the v3To.y *= height gives me some results. It changes the height of the camera. But when the character is driving on the bottom side of the track the camera is under the track surface.
$$anonymous$$y idea was that transform.up would get me the up vector of the camera no matter what the rotation, but apparently it's as good as Vector3.up and completely useless...
Answer by thef1chesser · Oct 23, 2014 at 10:36 AM
Voor nu heb ik een empty game object het script gegeven en de camera daar aangehangen op een manier dat die goed volgt.
Een daadwerkelijke oplossing zou mooi zijn.