В моей игре есть персонаж, который вращается с помощью мыши. Чтобы пользователь не щелкнул мышью за пределами окна игры, я заблокировал курсор в центре экрана, когда он находится в игровом процессе. Когда пользователь ставит игру на паузу, мышь разблокируется, чтобы они могли взаимодействовать с кнопками меню паузы. Когда они возобновляются, мышь снова фиксируется в центре экрана, однако это дает оси «Mouse X» огромное число, которое заставляет персонажа «прыгать» в новое вращение, чего я не хочу.
Вот базовый c код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FirstPersonController : MonoBehaviour
{
bool gamePaused = false;
void Start() {
Cursor.lockState = CursorLockMode.Locked;
}
void Update() {
if (!gamePaused)
CharacterRotation();
}
void CharacterRotation() {
transform.Rotate(0, Input.GetAxis("Mouse X") * 10, 0);
}
public void Pause() {
gamePaused = true;
Cursor.lockState = CursorLockMode.None;
}
public void Resume() {
gamePaused = false;
Cursor.lockState = CursorLockMode.Locked;
}
}
Есть идеи, как это предотвратить? Любая помощь будет принята с благодарностью :)