Новая система ввода не отправляет сообщения?

#unity3d

#unity3d

Вопрос:

Я использую систему ввода Unity и определил свои элементы управления в соответствии со схемой управления (Схема управления)

У меня есть компонент ввода игрока на моем проигрывателе и мой CharacterInput для обработки ввода игрока. Я хотел реализовать форму ввода sendMessages, поэтому вот конфигурация:

введите описание изображения здесь

Наконец, у меня есть свой класс CharacterInput для того же объекта, вот код:

 using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;

[RequireComponent(typeof(Rigidbody2D))]
public class CharacterInput : MonoBehaviour
{
    [SerializeField] private float speed;
    private Rigidbody2D rb;

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        
    }

    public void OnMove(InputValue input)
    {
        Debug.Log("aha");
        Vector2 inputVec = input.Get<Vector2>();
        HandleMove(inputVec);
    }

    private void HandleMove(Vector2 fromInupt)
    {
        transform.position  = new Vector3(fromInupt.x * speed * Time.deltaTime, 0, fromInupt.y * speed * Time.deltaTime);
    }
}
 

Итак, моя проблема в том, что ввод WASD не выводит сообщение отладки. Итак, мой вопрос в том, что я пропустил при получении PlayerInput для вызова onMove?

Ответ №1:

Мне пришлось добавить клавиатуру и мышь в таблицу в моей схеме управления с Edit Control Scheme...

Скриншот редактора схемы управления Unity