ppo-Pyramids-Training
/
com.unity.ml-agents.extensions
/Runtime
/Input
/Adaptors
/FloatInputActionAdaptor.cs
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; | |
} | |
} | |
} | |