#if MLA_INPUT_SYSTEM && UNITY_2019_4_OR_NEWER
using UnityEngine.InputSystem;
namespace Unity.MLAgents.Extensions.Input
{
///
/// Implement this interface if you are listening to C# events from the generated C# class from the
/// . This interface works with the in order
/// to allow ML-Agents to simulate input actions based on the instance of the
/// used to listen to events. If you implement this interface the will use
/// what is returned from as the asset to base it's simulated input for.
/// Otherwise, the will look for the component
/// and use the asset from there. If you have multiple components handling PlayerInput on the same GameObject
/// they will need to share the same instance of the in order to get the simulated
/// input.
///
public interface IInputActionAssetProvider
{
///
/// Returns the instance being from the generated C# class of the
/// in order to correctly fire events when simulating input from ML-Agents.
///
/// The instance of the you are listening for events on.
(InputActionAsset, IInputActionCollection2) GetInputActionAsset();
}
}
#endif // MLA_INPUT_SYSTEM && UNITY_2019_4_OR_NEWER