#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...