#if MLA_INPUT_SYSTEM && UNITY_2019_4_OR_NEWER using System; using Unity.MLAgents.Actuators; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.InputSystem.Controls; using UnityEngine.InputSystem.LowLevel; namespace Unity.MLAgents.Extensions.Input { /// /// Translates data from any control that extends from . /// public class Vector2InputActionAdaptor : IRLActionInputAdaptor { /// public ActionSpec GetActionSpecForInputAction(InputAction action) { // TODO create the action spec based on what controls back the action return ActionSpec.MakeContinuous(2); } /// public void WriteToInputEventForAction(InputEventPtr eventPtr, InputAction action, InputControl control, ActionSpec actionSpec, in ActionBuffers actionBuffers) { var x = actionBuffers.ContinuousActions[0]; var y = actionBuffers.ContinuousActions[1]; control.WriteValueIntoEvent(new Vector2(x, y), eventPtr); } /// public void WriteToHeuristic(InputAction action, in ActionBuffers actionBuffers) { var value = action.ReadValue(); var continuousActions = actionBuffers.ContinuousActions; continuousActions[0] = value.x; continuousActions[1] = value.y; } } } #endif // MLA_INPUT_SYSTEM && UNITY_2019_4_OR_NEWER