I have a camera which is a child of my playerObject. The camera is always looking at the player in a 90 degree angle and is always on the same side of the player (like in Valkyrie Profile 2). This stuff already works.
The problem now is that i want the movement of the camera to be lerped when it follows the player.
Do you want to follow the player with some delay? If so, set the camera’s position/rotation in LateUpdate (camera script):
public speed: float = 5.0;
private relPos: Vector3;
private target: Transform;
private tr: Transform;
function Start(){
tr = transform; // cache camera transform in tr
relPos = tr.localPosition; // get initial relative position
target = tr.parent; // our target is the current parent (the player)
tr.parent = null; // unchild the camera - it will move by itself
}
function LateUpdate(){
// find the destination position in world space:
var destPos: Vector3 = target.TransformPoint(relPos);
// lerp to it each frame:
tr.position = Vector3.Lerp(tr.position, destPos, speed * Time.deltaTime);
// keep your eyes on the target
tr.LookAt(target);
}
The camera was detached from the player just to avoid wasting time with child movement since this will be done in LateUpdate anyway. If the camera must be a child of the player for other reasons, however, just delete the last instruction in Start.