My Camera Follow script is not very smooth. How can I smoothen the movement of the camera?
Here it is:
using UnityEngine;
using System.Collections;
public class FollowCamera : MonoBehaviour {
public float interpVelocity;
public float minDistance;
public float followDistance;
public GameObject target;
public Vector3 offset;
Vector3 targetPos;
void Start () {
targetPos = transform.position;
}
void FixedUpdate () {
if (target)
{
Vector3 posNoZ = transform.position;
posNoZ.z = target.transform.position.z;
Vector3 targetDirection = (target.transform.position - posNoZ);
interpVelocity = targetDirection.magnitude * 5f;
targetPos = transform.position + (targetDirection.normalized * interpVelocity * Time.deltaTime);
transform.position = Vector3.Lerp( transform.position, targetPos + offset, 0.25f);
}
}
}
The script makes the camera follow a rotating target.
You are updatng camera position on FixedUpdate. Change it to LateUpdate. FixedUpdate is designed for other purposes and is called less often usually then every frame. LateUpdate is called every frame and after Update so if your target is updated on Update camera will update its position later, what is desired.