Цель на сегодня — создать карту действий для игрока и настроить действие движения со значением (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); }