Проблемы с новой системой вводаC#

Место общения программистов C#
Ответить
Anonymous
 Проблемы с новой системой ввода

Сообщение Anonymous »

Код:

Код: Выделить всё

using UnityEngine;
using UnityEngine.InputSystem;

public class Mover : MonoBehaviour
{
[SerializeField] private float moveSpeed = 5f;
private Vector2 moveInput;

public void OnMove(InputAction.CallbackContext context)
{
moveInput = context.ReadValue();
Debug.Log($"Move Input (performed): {moveInput}");
}

private void FixedUpdate()
{
MovePlayer();
Debug.Log($"Move Input in Update: {moveInput}");
}

void MovePlayer()
{
Vector3 move = new Vector3(moveInput.x, 0, moveInput.y) * moveSpeed * Time.deltaTime;
transform.Translate(move, Space.World);
}
}
Я пытаюсь научиться использовать новую систему ввода в Unity — безуспешно.
Я использую учебник, и перед переключением на новую систему ввода все работает нормально.
Теперь - журналы с вводом перемещения были правильными (менялись с 0 на 1 и с 1 на 0 при нажатии или отпускании кнопки).
Но я не могу заставить своего игрока двигаться, потому что в фиксированном режиме Обновите оба значения, всегда равные 0.
Что я делаю не так?
Я проверил другие темы, но эти решения у меня не работают, потому что они используют твердое тело. Я не хочу использовать его в этом случае.
#Edit
Я добился чего-то похожего, сделав это следующим образом:

Код: Выделить всё

using UnityEngine;
using UnityEngine.InputSystem;

public class Mover : MonoBehaviour
{
[SerializeField] float moveSpeed = 6f;
private Vector2 moveInput;
private InputAction moveAction;

void Awake()
{
moveAction = GetComponent
().actions["Move"];
}

void Update()
{
moveInput = moveAction.ReadValue();
MovePlayer();
Debug.Log($"Move Input in Update: {moveInput}");
}

void MovePlayer()
{
Vector3 move = new Vector3(moveInput.x, 0, moveInput.y) * moveSpeed * Time.deltaTime;
transform.Translate(move);
}
}

И я предпочитаю делать это таким образом, но для получения знаний я хочу знать, как заставить это работать, используя сопоставление через OnMove.


Подробнее здесь: https://stackoverflow.com/questions/791 ... put-system
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»