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; | |
| } | |
| } | |
| } | |