Когда ключи WASD будут реализованы в моем коде?

#c# #unity3d #game-development

#c# #unity3d #разработка игр

Вопрос:

Я пишу скрипт на C # для проигрывателя, который использует клавиши WASD для перемещения. Мой сценарий приведен ниже.

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

public class PlayerAction : MonoBehaviour
{
    public Rigidbody rigid;
    public float horizontal;
    public float vertical;
    public float rate = 30.5f;
    // Start is called before the first frame update
    void Start()
    {
        rigid = GetComponent<Rigidbody>();
    }

    // Update is called once per frame
    void Update()
    {
        horizontal = Input.GetAxis("Horizontal");
        vertical = Input.GetAxis("Vertical");
        Vector3 direction = new Vector3(horizontal, 0.0f, vertical);
        rigid.AddForce(direction * rate);
    }
}
  

Однако в моем коде вообще нет ничего плохого, я просто хотел бы знать, как уже были реализованы ключи WASD. Может ли кто-нибудь объяснить, как это должно быть?

Комментарии:

1. Проверьте в диспетчере ввода, какие значения присвоены «Horizontal» и «Vertical».

Ответ №1:

Входные данные Unity управляются через Диспетчер входных данных (Редактировать -> Настройки проекта, затем выберите категорию входных данных).

Диспетчер ввода использует следующие типы элементов управления:

  1. Клавиша относится к любой клавише на физической клавиатуре, такой как W, Shift или пробел. Кнопка относится к любой кнопке на физическом контроллере (например, геймпадах), например кнопке X на контроллере Xbox One
 Input.GetKey("Jump") {...};
  
  1. Виртуальная ось (множественное число: оси) сопоставляется элементу управления, такому как
    кнопка или ключ. Когда пользователь активирует элемент управления, ось получает значение в
    диапазон значений [-1..1]. Вы можете использовать это значение в своих скриптах
 horizontal = Input.GetAxis("Horizontal");
  

Ваша строка кода ссылается на Ось, определенную в диспетчере ввода с именем «Horizontal». Сама эта ось реализует положительные кнопки, а также отрицательные кнопки. В данном случае A / D, из которого вы затем можете косвенно получать входные данные в своем коде.