Чтобы исправить реверс мыши в вашем скрипте, измените направление вращения по вертикали. Проблема возникает из-за знака при изменении xRotation. Вот исправленный код:
private void Update()
{
// Получаем ввод мыши
float mouseX = Input.GetAxisRaw("Mouse X") * Time.deltaTime * sensX;
float mouseY = Input.GetAxisRaw("Mouse Y") * Time.deltaTime * sensY;
yRotation += mouseX;
xRotation -= mouseY; // Замените += на -= для инверсии направления
xRotation = Mathf.Clamp(xRotation, -90f, 90f);
// Применяем повороты
transform.rotation = Quaternion.Euler(xRotation, yRotation, 0);
orientation.rotation = Quaternion.Euler(0, yRotation, 0);
}
Строка xRotation += mouseY заменена на xRotation -= mouseY — это уберет реверс по вертикали.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
• Скрипт Unity (1 ссылка на ресурсы) | Ссылок: 0
public class PlayerCam: MonoBehaviour
{
public float sensX;
public float sensY;
public Transform orientation;
float xRotation;
float yRotation;
• Сообщение Unity | Ссылок: 0
private void Start()
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
A
PlayerCam
• Сообщение Unity | Ссылок: 0
private void Update()
{
//get mouse input
sensX; float mouseX = Input.GetAxisRaw("Mouse X") * Time.deltaTime
float mouseY = Input.GetAxisRaw("Mouse Y") * Time.deltaTime * sensY;
yRotation += mouseX;
xRotation += mouseY;
xRotation = Mathf.Clamp(xRotation, -90f, 90f);
// rotate cam and orientation
transform.rotation = Quaternion. Euler(xRotation, yRotation, 0);
orientation.rotation = Quaternion.Euler(0, yRotation, 0);
{
{