File size: 1,338 Bytes
05c9ac2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#if MLA_INPUT_SYSTEM
using Unity.MLAgents.Actuators;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.LowLevel;
namespace Unity.MLAgents.Extensions.Input
{
/// <summary>
/// Translates data from any control that extends from <see cref="InputControl{Single}"/>.
/// </summary>
public class FloatInputActionAdaptor : IRLActionInputAdaptor
{
/// <inheritdoc cref="IRLActionInputAdaptor.GetActionSpecForInputAction"/>
public ActionSpec GetActionSpecForInputAction(InputAction action)
{
return ActionSpec.MakeContinuous(1);
}
/// <inheritdoc cref="IRLActionInputAdaptor.WriteToInputEventForAction"/>
public void WriteToInputEventForAction(InputEventPtr eventPtr, InputAction action, InputControl control, ActionSpec actionSpec, in ActionBuffers actionBuffers)
{
var val = actionBuffers.ContinuousActions[0];
control.WriteValueIntoEvent(val, eventPtr);
}
/// <inheritdoc cref="IRLActionInputAdaptor.WriteToHeuristic"/>
public void WriteToHeuristic(InputAction action, in ActionBuffers actionBuffers)
{
var actions = actionBuffers.ContinuousActions;
var val = action.ReadValue<float>();
actions[0] = val;
}
}
}
#endif // MLA_INPUT_SYSTEM
|