#if MLA_INPUT_SYSTEM && UNITY_2019_4_OR_NEWER
using System;
using Unity.MLAgents.Actuators;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.LowLevel;
namespace Unity.MLAgents.Extensions.Input
{
///
/// Implement this interface in order to customize how information is translated s
/// and .
///
public interface IRLActionInputAdaptor
{
///
/// Generate an for a given action which determines how data is translated between
/// the and ML-Agents.
///
/// The to based the from.
/// An instance based off the information in the .
ActionSpec GetActionSpecForInputAction(InputAction action);
///
/// Translates data from the object to the .
///
/// The Event pointer to write to.
/// The action associated with this adaptor.
/// The control which will write the event to the .
/// The associated with this action and adaptor pair.
/// The object to read from.
void WriteToInputEventForAction(InputEventPtr eventPtr, InputAction action, InputControl control, ActionSpec actionSpec, in ActionBuffers actionBuffers);
///
/// Writes data from the to the .
///
/// The to read data from.
/// The object to write data to.
void WriteToHeuristic(InputAction action, in ActionBuffers actionBuffers);
}
}
#endif // MLA_INPUT_SYSTEM && UNITY_2019_4_OR_NEWER