Когда я блокирую мышь в моем скрипте C# и пытаюсь получить доступ к значению прокрутки (в моем случае scroll.y
), я всегда получаю 0. Когда я нажимаю esc
и разблокирую мышь, значение отображается правильно ( -1 или 1) когда я использую колесо. Это также работает, если я собираю игру.
Я создал InputData для управления своим вводом:
using UnityEngine;
using UnityEngine.InputSystem;
[CreateAssetMenu]
public class InputData : ScriptableObject
{
public InputAction MovementAction;
public InputAction LookAction;
public InputAction ScrollAction;
private void OnEnable()
{
MovementAction.Enable();
LookAction.Enable();
ScrollAction.Enable();
}
private void OnDisable()
{
MovementAction.Disable();
LookAction.Disable();
ScrollAction.Disable();
}
}
В этом скрипте я получаю дельту прокрутки:
using UnityEngine;
public class weaponSwitching : MonoBehaviour
{
private int selectedWeapon = 0;
public InputData actions;
private float prevVal = 0;
void Start()
{
SelectWeapon();
}
void Update()
{
Vector2 scroll = actions.ScrollAction.ReadValue<Vector2>();
Debug.Log(scroll.y);
if (scroll.y > 0f)
{
selectedWeapon++;
SelectWeapon();
}
else if (scroll.y < 0f)
{
}
}
Спасибо за любую помощь! :)