| #if MLA_INPUT_SYSTEM |
| using Unity.MLAgents.Actuators; |
| using UnityEngine; |
| using UnityEngine.InputSystem; |
| using UnityEngine.InputSystem.LowLevel; |
|
|
| namespace Unity.MLAgents.Input |
| { |
| |
| |
| |
| [UnityEngine.Scripting.APIUpdating.MovedFrom("Unity.MLAgents.Extensions.Input")] |
| public class Vector2InputActionAdaptor : IRLActionInputAdaptor |
| { |
| |
| public ActionSpec GetActionSpecForInputAction(InputAction 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<Vector2>(); |
| var continuousActions = actionBuffers.ContinuousActions; |
| continuousActions[0] = value.x; |
| continuousActions[1] = value.y; |
| } |
| } |
| } |
| #endif // MLA_INPUT_SYSTEM |
|
|