namespace Unity.MLAgents.Actuators { /// /// Interface for writing a mask to disable discrete actions for agents for the next decision. /// public interface IDiscreteActionMask { /// /// Set whether or not the action index for the given branch is allowed. /// /// /// By default, all discrete actions are allowed. /// If isEnabled is false, the agent will not be able to perform the actions passed as argument /// at the next decision for the specified action branch. The actionIndex corresponds /// to the action options the agent will be unable to perform. /// /// See [Agents - Actions] for more information on masking actions. /// /// [Agents - Actions]: https://github.com/Unity-Technologies/ml-agents/blob/release_17_docs/docs/Learning-Environment-Design-Agents.md#masking-discrete-actions /// /// The branch for which the actions will be masked. /// Index of the action. /// Whether the action is allowed or not. void SetActionEnabled(int branch, int actionIndex, bool isEnabled); } }