Цель на сегодня — создать карту действий для игрока и настроить действие движения со значением (vector2). Затем используйте сочетание вверх/вниз/влево/вправо для привязки клавиш. Всякий раз, когда вы находитесь в игровом режиме, игрок будет перемещать базу в зависимости от ввода с клавиатуры.

Настройка карты действий

Пришло время создать скрипт движения, который будет взаимодействовать с игроком. Я уже создал карту действий игрока и настроил свои привязки.

  • Обязательно сгенерируйте сценарий C# для исходного ресурса в проекте.
  • Далее создайте еще один скрипт для плеера.

Сценарий движения

В сценарии мы должны создать экземпляр сценария InputActionMap и добавить пространство имен UnityEngine.InputSystem.

using UnityEngine.InputSystem;

{
    private InputActionMaps _input;

    private void Awake()
    {
        _input = new InputActionMaps();
    }


}
  • Затем в методе on-enable мы должны включить карту действий, которую мы используем, _input.Player.Enable()
public class Movement : MonoBehaviour
{
    private InputActionMaps _input;

    private void Awake()
    {
        _input = new InputActionMaps();
    }

    private void OnEnable()
    {
        _input.Player.Enable();
    }

Когда карта действий включена, я создал еще один метод, который берет значение вектора 2 из действия и использует его для перевода игрока.

public class Movement : MonoBehaviour
{
    private InputActionMaps _input;
    private float _speed = 8f;

    private void Awake()
    {
        _input = new InputActionMaps();
    }

    private void OnEnable()
    {
        _input.Player.Enable();
    }
    private void Update()
    {
        Control();
    }

    private void Control() 
    { 
        var _movement = _input.Player.Movement.ReadValue<Vector2>();
        transform.Translate(_movement * _speed * Time.deltaTime);
    }