#if MLA_INPUT_SYSTEM && UNITY_2019_4_OR_NEWER
using Unity.MLAgents.Actuators;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.LowLevel;
namespace Unity.MLAgents.Extensions.Input
{
///
/// Translates data from a .
///
public class IntegerInputActionAdaptor : IRLActionInputAdaptor
{
// TODO need to figure out how we can infer the branch size from here.
///
public ActionSpec GetActionSpecForInputAction(InputAction action)
{
return ActionSpec.MakeDiscrete(2);
}
///
public void WriteToInputEventForAction(InputEventPtr eventPtr, InputAction action, InputControl control, ActionSpec actionSpec, in ActionBuffers actionBuffers)
{
var val = actionBuffers.DiscreteActions[0];
control.WriteValueIntoEvent(val, eventPtr);
}
///
public void WriteToHeuristic(InputAction action, in ActionBuffers actionBuffers)
{
var actions = actionBuffers.DiscreteActions;
var val = action.ReadValue();
actions[0] = val;
}
}
}
#endif // MLA_INPUT_SYSTEM && UNITY_2019_4_OR_NEWER