| namespace Unity.MLAgents.Actuators | |
| { | |
| /// <summary> | |
| /// Abstraction that facilitates the execution of actions. | |
| /// </summary> | |
| public interface IActuator : IActionReceiver, IHeuristicProvider | |
| { | |
| /// <summary> | |
| /// The specification of the actions for this IActuator. | |
| /// </summary> | |
| /// <seealso cref="ActionSpec"/> | |
| ActionSpec ActionSpec { get; } | |
| /// <summary> | |
| /// Gets the name of this IActuator which will be used to sort it. | |
| /// </summary> | |
| /// <returns></returns> | |
| string Name { get; } | |
| /// <summary> | |
| /// Resets the internal state of the actuator. This is called at the end of an Agent's episode. | |
| /// Most implementations can leave this empty. | |
| /// </summary> | |
| void ResetData(); | |
| } | |
| /// <summary> | |
| /// Helper methods to be shared by all classes that implement <see cref="IActuator"/>. | |
| /// </summary> | |
| public static class IActuatorExtensions | |
| { | |
| /// <summary> | |
| /// Returns the number of discrete branches + the number of continuous actions. | |
| /// </summary> | |
| /// <param name="actuator"></param> | |
| /// <returns></returns> | |
| public static int TotalNumberOfActions(this IActuator actuator) | |
| { | |
| return actuator.ActionSpec.NumContinuousActions + actuator.ActionSpec.NumDiscreteActions; | |
| } | |
| } | |
| } | |