ppo-Pyramids-Training
/
com.unity.ml-agents.extensions
/Runtime
/Input
/Adaptors
/IntegerInputActionAdaptor.cs
using Unity.MLAgents.Actuators; | |
using UnityEngine.InputSystem; | |
using UnityEngine.InputSystem.LowLevel; | |
namespace Unity.MLAgents.Extensions.Input | |
{ | |
/// <summary> | |
/// Translates data from a <see cref="UnityEngine.InputSystem.Controls.IntegerControl"/>. | |
/// </summary> | |
public class IntegerInputActionAdaptor : IRLActionInputAdaptor | |
{ | |
// TODO need to figure out how we can infer the branch size from here. | |
/// <inheritdoc cref="IRLActionInputAdaptor.GetActionSpecForInputAction"/> | |
public ActionSpec GetActionSpecForInputAction(InputAction action) | |
{ | |
return ActionSpec.MakeDiscrete(2); | |
} | |
/// <inheritdoc cref="IRLActionInputAdaptor.WriteToInputEventForAction"/> | |
public void WriteToInputEventForAction(InputEventPtr eventPtr, InputAction action, InputControl control, ActionSpec actionSpec, in ActionBuffers actionBuffers) | |
{ | |
var val = actionBuffers.DiscreteActions[0]; | |
control.WriteValueIntoEvent(val, eventPtr); | |
} | |
/// <inheritdoc cref="IRLActionInputAdaptor.WriteToHeuristic"/> | |
public void WriteToHeuristic(InputAction action, in ActionBuffers actionBuffers) | |
{ | |
var actions = actionBuffers.DiscreteActions; | |
var val = action.ReadValue<int>(); | |
actions[0] = val; | |
} | |
} | |
} | |