Я использую новую систему ввода в Unity.
Я установил флажок «Создать класс C#», чтобы использовать ее. в моем коде. У меня есть такой код (игнорируя ненужный код):
Код: Выделить всё
public class PlayerController : MonoBehaviour
{
private InputSystemSettings _inputControl;
private int jumpCounter;
private Rigidbody2D _rb;
private void Awake()
{
_inputControl = new InputSystemSettings();
_inputControl.Player.Jump.performed += JumpPerformed;
jumpCounter = 0;
}
private void Start()
{
_rb = GetComponent();
}
private void OnEnable() { _inpputControl.Enable();}
private void OnDisable() { _inputControl.Disable();}
private void JumpPerformed(InputAction.CallbackContext context)
{
_rb.velocity = new Vector2(_rb.velocity.x, jumpForce);
jumpCounter += 1;
Debug.Log(jumpCounter);
}
}
Я ожидаю, что когда я нажму кнопку перехода (пробел), консоль выведет 1, а затем, если я снова нажму кнопку перехода, будет выведено 2.
Фактический результат:
Однако , когда я нажимаю кнопку перехода, консоль выводит 1, а затем, когда я снова нажимаю кнопку перехода, консоль снова выводит 1. если я продолжу нажимать кнопку перехода, консоль выведет 2, 3, 4, 5....
Это означает, что если я нажму кнопку 5 раз, выход будет 1, 1, 2, 3 , 4. (Я ожидаю, что это должно быть: 1, 2, 3, 4, 5)
Так это новая ошибка системы ввода? или я использовал его неправильно?
Любая помощь приветствуется.
Подробнее здесь: https://stackoverflow.com/questions/790 ... put-system
Мобильная версия