Я пытаюсь улучшить движение мыши моего персонажа. Это сценарий от первого лица, горизонтальное движение кажется идеальным, но в случайные моменты механика взгляда вверх/вниз выходит из строя и действует самостоятельно. Функции, которые я использовал для горизонтальной и вертикальной ориентации, одинаковы, но я не уверен, что может быть причиной этого.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MouseMovement : MonoBehaviour
{
public float mouseSensitivity = 200f;
float xRotation = 0f;
float YRotation = 0f;
void Start()
{
//Locking the cursor to the middle of the screen and making it invisible
Cursor.lockState = CursorLockMode.Locked;
}
void Update()
{
if (!InventorySystem.Instance.isOpen ) //remove these) && !CraftingSystem.Instance.isOpen)
{
float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime;
//control rotation around x axis (Look up and down)
xRotation -= mouseY;
//clamp the rotation so we dont Over-rotate (like in real life)
xRotation = Mathf.Clamp(xRotation, -90f, 90f);
//control rotation around y axis (Look up and down)
YRotation += mouseX;
//applying both rotations
transform.localRotation = Quaternion.Euler(xRotation, YRotation, 0f);
}
}
}