using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MouseLook : MonoBehaviour
{
    public float mouseSensitivity = 100f;

    public Transform playerBody;
    public float smoothing = 0.01f;
    [HideInInspector] public Vector2 smoothedVelocity;
    [HideInInspector] public Vector2 currentLookingPos;

    // Start is called before the first frame update
    void Start()
    {
        Cursor.lockState = CursorLockMode.Locked;
    }

    // Update is called once per frame
    void LateUpdate()
    {
        Vector2 inputValues = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"));
        inputValues = Vector2.Scale(inputValues, new Vector2(mouseSensitivity, mouseSensitivity));
        smoothedVelocity = Vector2.Lerp(smoothedVelocity, inputValues, (1f / smoothing) * Time.deltaTime);

        currentLookingPos += smoothedVelocity;
        currentLookingPos.y = Mathf.Clamp(currentLookingPos.y, -90f, 90f);
        transform.localRotation = Quaternion.AngleAxis(-currentLookingPos.y, Vector3.right);
        playerBody.localRotation = Quaternion.AngleAxis(currentLookingPos.x, playerBody.up);

    }
}