34 lines
1.1 KiB
C#

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);
}
}