My camera feels like it snaps back into place when I try to move it left and right. This only happens in builds, can anyone help? This is my script:
using UnityEngine;
public class PlayerLook : MonoBehaviour
{
public float mouseSensitivity = 100f;
public Transform playerBody;
private float xRotation = 0f;
private bool isInventoryOpen = false; // Track inventory state
private const string SensitivityKey = "MouseSensitivity";
void Start()
{
if (playerBody == null)
{
playerBody = transform.parent;
if (playerBody == null)
{
enabled = false;
return;
}
}
// Load saved sensitivity or use default
mouseSensitivity = PlayerPrefs.GetFloat(SensitivityKey, mouseSensitivity);
LockCursor();
}
void Update()
{
if (isInventoryOpen) return; // Skip look logic when inventory is open
float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime;
xRotation -= mouseY;
xRotation = Mathf.Clamp(xRotation, -90f, 90f);
transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
playerBody.Rotate(Vector3.up * mouseX);
}
public void SetInventoryState(bool isOpen)
{
isInventoryOpen = isOpen;
if (isInventoryOpen)
{
UnlockCursor();
}
else
{
LockCursor();
}
}
public void SetMouseSensitivity(float sensitivity)
{
mouseSensitivity = sensitivity;
// Save sensitivity to PlayerPrefs
PlayerPrefs.SetFloat(SensitivityKey, sensitivity);
PlayerPrefs.Save();
}
private void LockCursor()
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
}
private void UnlockCursor()
{
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
}
}