 
空のオブジェクトを作成し、プレイヤー位置を常に追従させ、子オブジェクトにカメラを配置します。
カメラはプレイヤーから離れた位置へ(好みの場所で)。
また、Mathf.Clampで、縦方向の回転角度を制限しています。
【参考】Unityでカメラの向きを基準に移動する方法と、追従して回転できるカメラの実装
TpsCamera.cs
using UnityEngine;
public class TpsCamera : MonoBehaviour {
    [SerializeField] Transform Player;
    [SerializeField]float RotateSpeed;
    float yaw,pitch;
    
    private void Start()
    {
        RotateSpeed = 1;
    }
    void Update () {
        
        //プライヤー位置を追従する
        transform.position = new Vector3(Player.position.x, transform.position.y, Player.position.z); 
        yaw +=  Input.GetAxis("Mouse X")*RotateSpeed; //横回転入力
        pitch-=Input.GetAxis("Mouse Y")*RotateSpeed; //縦回転入力
        pitch = Mathf.Clamp(pitch, -80, 60); //縦回転角度制限する
        transform.eulerAngles = new Vector3(pitch, yaw, 0.0f); //回転の実行
	}
}