Search code examples
c#unity-game-enginecamera

Following camera Unity


I want that camera follow the player. For this I use player's(in target) transform and change camera's transform.

public class CameraScript : MonoBehaviour
{
    public Transform target;
    private Vector3 delta;

    void Start()
    {
        delta = Camera.main.transform.position - target.position;
    }

    void Update()
    {
        Camera.main.transform.position = target.position + delta;
    }
}

This method works, but it's a better solution?


Solution

  • It comes down to what "better" means, but generally doing a little interpolation to smooth out the camera's motion looks better (although for VR it's not so simple)

    Something like this should work:

    public class CameraScript : MonoBehaviour
    {
        public Transform target;
        public float lerpSpeed;
        private Vector3 delta;
    
        void Start()
        {
            delta = Camera.main.transform.position - target.position;
        }
    
        void Update()
        {
            Camera.main.transform.position = Vector3.Lerp(Camera.main.transform.position, target.position + delta, lerpSpeed * Time.deltaTime);
        }
    }