34 lines
1.1 KiB
C#
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);
|
|
|
|
}
|
|
}
|