diff --git a/Project/Assets/ML-Agents/Examples/Basic/Scripts/BasicActuatorComponent.cs b/Project/Assets/ML-Agents/Examples/Basic/Scripts/BasicActuatorComponent.cs index 9a02b6765e..4634db8839 100644 --- a/Project/Assets/ML-Agents/Examples/Basic/Scripts/BasicActuatorComponent.cs +++ b/Project/Assets/ML-Agents/Examples/Basic/Scripts/BasicActuatorComponent.cs @@ -16,7 +16,7 @@ public class BasicActuatorComponent : ActuatorComponent /// /// Creates a BasicActuator. /// - /// + /// Corresponding actuators. public override IActuator[] CreateActuators() { return new IActuator[] { new BasicActuator(basicController) }; diff --git a/Project/Assets/ML-Agents/Examples/Basic/Scripts/BasicSensorComponent.cs b/Project/Assets/ML-Agents/Examples/Basic/Scripts/BasicSensorComponent.cs index f956d747ad..dedb941557 100644 --- a/Project/Assets/ML-Agents/Examples/Basic/Scripts/BasicSensorComponent.cs +++ b/Project/Assets/ML-Agents/Examples/Basic/Scripts/BasicSensorComponent.cs @@ -14,7 +14,7 @@ public class BasicSensorComponent : SensorComponent /// /// Creates a BasicSensor. /// - /// + /// Corresponding sensors. public override ISensor[] CreateSensors() { return new ISensor[] { new BasicSensor(basicController) }; diff --git a/Project/Assets/ML-Agents/Examples/DungeonEscape/Scripts/DungeonEscapeEnvController.cs b/Project/Assets/ML-Agents/Examples/DungeonEscape/Scripts/DungeonEscapeEnvController.cs index d9a8d80cd3..1e884578ba 100644 --- a/Project/Assets/ML-Agents/Examples/DungeonEscape/Scripts/DungeonEscapeEnvController.cs +++ b/Project/Assets/ML-Agents/Examples/DungeonEscape/Scripts/DungeonEscapeEnvController.cs @@ -38,7 +38,7 @@ public class DragonInfo /// /// Max Academy steps before this platform resets /// - /// + /// The maximum steps before this platform resets. [Header("Max Environment Steps")] public int MaxEnvironmentSteps = 25000; private int m_ResetTimer; diff --git a/Project/Assets/ML-Agents/Examples/Match3/Scripts/Match3Board.cs b/Project/Assets/ML-Agents/Examples/Match3/Scripts/Match3Board.cs index df6c3a56a4..f2c342b64e 100644 --- a/Project/Assets/ML-Agents/Examples/Match3/Scripts/Match3Board.cs +++ b/Project/Assets/ML-Agents/Examples/Match3/Scripts/Match3Board.cs @@ -193,7 +193,7 @@ public bool MarkMatchedCells(int[,] cells = null) /// /// Sets cells that are matched to the empty cell, and returns the score earned. /// - /// + /// The number of earned points. public int ClearMatchedCells() { var pointsByType = new[] { BasicCellPoints, SpecialCell1Points, SpecialCell2Points }; diff --git a/Project/Assets/ML-Agents/Examples/PushBlock/Scripts/PushBlockEnvController.cs b/Project/Assets/ML-Agents/Examples/PushBlock/Scripts/PushBlockEnvController.cs index 1b4634820f..b000b2b0ee 100644 --- a/Project/Assets/ML-Agents/Examples/PushBlock/Scripts/PushBlockEnvController.cs +++ b/Project/Assets/ML-Agents/Examples/PushBlock/Scripts/PushBlockEnvController.cs @@ -32,7 +32,6 @@ public class BlockInfo /// /// Max Academy steps before this platform resets /// - /// [Header("Max Environment Steps")] public int MaxEnvironmentSteps = 25000; /// diff --git a/Project/Assets/ML-Agents/Examples/PushBlockWithInput/Scripts/PushBlockWithInputPlayerController.cs b/Project/Assets/ML-Agents/Examples/PushBlockWithInput/Scripts/PushBlockWithInputPlayerController.cs index 9e9922429d..e110ad83ad 100644 --- a/Project/Assets/ML-Agents/Examples/PushBlockWithInput/Scripts/PushBlockWithInputPlayerController.cs +++ b/Project/Assets/ML-Agents/Examples/PushBlockWithInput/Scripts/PushBlockWithInputPlayerController.cs @@ -105,7 +105,7 @@ static float CreateForwardVector(Vector2 move) /// listening to C# events, Unity Events, or receiving Messages from the Input System Package as those callbacks /// are set up through the generated . /// - /// + /// Corresponing action collection tuple. public (InputActionAsset, IInputActionCollection2) GetInputActionAsset() { LazyInitializeActions(); diff --git a/Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/ModelOverrider.cs b/Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/ModelOverrider.cs index 07ea9ae6b3..150e7c49b3 100644 --- a/Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/ModelOverrider.cs +++ b/Project/Assets/ML-Agents/Examples/SharedAssets/Scripts/ModelOverrider.cs @@ -111,7 +111,6 @@ public static string GetOverrideBehaviorName(string originalBehaviorName) /// Get the asset path to use from the commandline arguments. /// Can be called multiple times - if m_HaveProcessedCommandLine is set, will have no effect. /// - /// void GetAssetPathFromCommandLine() { if (m_HaveProcessedCommandLine) diff --git a/Project/Assets/ML-Agents/Examples/Soccer/Scripts/SoccerEnvController.cs b/Project/Assets/ML-Agents/Examples/Soccer/Scripts/SoccerEnvController.cs index d76d43ef92..076de1e27a 100644 --- a/Project/Assets/ML-Agents/Examples/Soccer/Scripts/SoccerEnvController.cs +++ b/Project/Assets/ML-Agents/Examples/Soccer/Scripts/SoccerEnvController.cs @@ -20,7 +20,6 @@ public class PlayerInfo /// /// Max Academy steps before this platform resets /// - /// [Tooltip("Max Environment Steps")] public int MaxEnvironmentSteps = 25000; /// diff --git a/com.unity.ml-agents.extensions/Runtime/Input/Adaptors/ButtonInputActionAdaptor.cs b/com.unity.ml-agents.extensions/Runtime/Input/Adaptors/ButtonInputActionAdaptor.cs index b37582422a..d16ad28a95 100644 --- a/com.unity.ml-agents.extensions/Runtime/Input/Adaptors/ButtonInputActionAdaptor.cs +++ b/com.unity.ml-agents.extensions/Runtime/Input/Adaptors/ButtonInputActionAdaptor.cs @@ -19,7 +19,7 @@ public class ButtonInputActionAdaptor : IRLActionInputAdaptor /// for pressed. /// /// The action associated with this adaptor to help determine the action space. - /// + /// ActionSpec with 1 branch of size 2. public ActionSpec GetActionSpecForInputAction(InputAction action) { return ActionSpec.MakeDiscrete(2); diff --git a/com.unity.ml-agents.extensions/Runtime/Input/InputActuatorComponent.cs b/com.unity.ml-agents.extensions/Runtime/Input/InputActuatorComponent.cs index ac8ae75236..b1a75d233b 100644 --- a/com.unity.ml-agents.extensions/Runtime/Input/InputActuatorComponent.cs +++ b/com.unity.ml-agents.extensions/Runtime/Input/InputActuatorComponent.cs @@ -182,7 +182,7 @@ internal static IActuator[] CreateActuatorsFromMap(InputActionMap inputActionMap /// /// true if the Agent connected to this GameObject is working in /// Heuristic mode. - /// + /// internal void UpdateDeviceBinding(bool isInHeuristicMode) { if (ReferenceEquals(m_Device, null)) @@ -259,7 +259,6 @@ internal static InputControlScheme CreateControlScheme(InputControl device, /// /// /// - /// internal static void RegisterLayoutBuilder(InputActionMap defaultMap, string layoutName) { if (InputSystem.LoadLayout(layoutName) == null) diff --git a/com.unity.ml-agents.extensions/Runtime/Sensors/ArticulationBodySensorComponent.cs b/com.unity.ml-agents.extensions/Runtime/Sensors/ArticulationBodySensorComponent.cs index 41e8acde56..277f01269d 100644 --- a/com.unity.ml-agents.extensions/Runtime/Sensors/ArticulationBodySensorComponent.cs +++ b/com.unity.ml-agents.extensions/Runtime/Sensors/ArticulationBodySensorComponent.cs @@ -15,7 +15,7 @@ public class ArticulationBodySensorComponent : SensorComponent /// /// Creates a PhysicsBodySensor. /// - /// + /// Corresponding sensors. public override ISensor[] CreateSensors() { return new ISensor[] {new PhysicsBodySensor(RootBody, Settings, sensorName)}; diff --git a/com.unity.ml-agents.extensions/Runtime/Sensors/CountingGridSensor.cs b/com.unity.ml-agents.extensions/Runtime/Sensors/CountingGridSensor.cs index f7a212be1e..b48deb995f 100644 --- a/com.unity.ml-agents.extensions/Runtime/Sensors/CountingGridSensor.cs +++ b/com.unity.ml-agents.extensions/Runtime/Sensors/CountingGridSensor.cs @@ -51,7 +51,7 @@ protected internal override ProcessCollidersMethod GetProcessCollidersMethod() /// The game object that was detected within a certain cell /// The index of the detectedObject's tag in the DetectableObjects list /// The buffer to write the observation values. - /// The buffer size is configured by . + /// The buffer size is configured by . /// protected override void GetObjectData(GameObject detectedObject, int tagIndex, float[] dataBuffer) { diff --git a/com.unity.ml-agents.extensions/Runtime/Sensors/PhysicsSensorSettings.cs b/com.unity.ml-agents.extensions/Runtime/Sensors/PhysicsSensorSettings.cs index d9f9c0d441..ecfa4417db 100644 --- a/com.unity.ml-agents.extensions/Runtime/Sensors/PhysicsSensorSettings.cs +++ b/com.unity.ml-agents.extensions/Runtime/Sensors/PhysicsSensorSettings.cs @@ -52,7 +52,7 @@ public struct PhysicsSensorSettings /// /// Creates a PhysicsSensorSettings with reasonable default values. /// - /// + /// `PhysicsSensorSettings` with reasonable default values. public static PhysicsSensorSettings Default() { return new PhysicsSensorSettings diff --git a/com.unity.ml-agents.extensions/Runtime/Sensors/PoseExtractor.cs b/com.unity.ml-agents.extensions/Runtime/Sensors/PoseExtractor.cs index 9777473a95..a528dde90a 100644 --- a/com.unity.ml-agents.extensions/Runtime/Sensors/PoseExtractor.cs +++ b/com.unity.ml-agents.extensions/Runtime/Sensors/PoseExtractor.cs @@ -136,7 +136,7 @@ public int NumPoses /// Get the parent index of the body at the specified index. /// /// - /// + /// The parent index of the body at the specified index. public int GetParentIndex(int index) { if (m_ParentIndices == null) @@ -195,14 +195,14 @@ protected void Setup(int[] parentIndices) /// Return the world space Pose of the i'th object. /// /// - /// + /// The world space Pose at given index. protected internal abstract Pose GetPoseAt(int index); /// /// Return the world space linear velocity of the i'th object. /// /// - /// + /// The world space linear velocity at given index. protected internal abstract Vector3 GetLinearVelocityAt(int index); /// @@ -210,7 +210,7 @@ protected void Setup(int[] parentIndices) /// used for display in the inspector. /// /// - /// + /// The `Object` at given index. protected internal virtual Object GetObjectAt(int index) { return null; @@ -285,7 +285,7 @@ public void UpdateLocalSpacePoses() /// Compute the number of floats needed to represent the poses for the given PhysicsSensorSettings. /// /// - /// + /// The number of floats needed to represent the poses for the given `PhysicsSensorSettings`. public int GetNumPoseObservations(PhysicsSensorSettings settings) { int obsPerPose = 0; @@ -355,7 +355,7 @@ internal struct DisplayNode /// /// Get a list of display nodes in depth-first order. /// - /// + /// The display nodes. internal IList GetDisplayNodes() { if (NumPoses == 0) @@ -434,7 +434,7 @@ public static class PoseExtensions /// will equal the identity pose (within tolerance). /// /// - /// + /// Inverse `Pose`. public static Pose Inverse(this Pose pose) { var rotationInverse = Quaternion.Inverse(pose.rotation); @@ -447,7 +447,7 @@ public static Pose Inverse(this Pose pose) /// /// /// - /// + /// Multiplied `Pose`. public static Pose Multiply(this Pose pose, Pose rhs) { return rhs.GetTransformedBy(pose); @@ -460,7 +460,7 @@ public static Pose Multiply(this Pose pose, Pose rhs) /// /// /// - /// + /// Multiplied `Pose`. public static Vector3 Multiply(this Pose pose, Vector3 rhs) { return pose.rotation * rhs + pose.position; diff --git a/com.unity.ml-agents.extensions/Runtime/Sensors/RigidBodyPoseExtractor.cs b/com.unity.ml-agents.extensions/Runtime/Sensors/RigidBodyPoseExtractor.cs index 38fad10fde..694b5974ab 100644 --- a/com.unity.ml-agents.extensions/Runtime/Sensors/RigidBodyPoseExtractor.cs +++ b/com.unity.ml-agents.extensions/Runtime/Sensors/RigidBodyPoseExtractor.cs @@ -163,7 +163,7 @@ protected internal override Object GetObjectAt(int index) /// /// Get a dictionary indicating which Rigidbodies' poses are enabled or disabled. /// - /// + /// `Dictionary` indicating which Rigidbodies' poses are enabled or disabled. internal Dictionary GetBodyPosesEnabled() { var bodyPosesEnabled = new Dictionary(m_Bodies.Length); diff --git a/com.unity.ml-agents.extensions/Runtime/Sensors/RigidBodySensorComponent.cs b/com.unity.ml-agents.extensions/Runtime/Sensors/RigidBodySensorComponent.cs index 283a37b3a5..6cfc4aa666 100644 --- a/com.unity.ml-agents.extensions/Runtime/Sensors/RigidBodySensorComponent.cs +++ b/com.unity.ml-agents.extensions/Runtime/Sensors/RigidBodySensorComponent.cs @@ -38,7 +38,7 @@ public class RigidBodySensorComponent : SensorComponent /// /// Creates a PhysicsBodySensor. /// - /// + /// Corresponding sensors. public override ISensor[] CreateSensors() { var _sensorName = string.IsNullOrEmpty(sensorName) ? $"PhysicsBodySensor:{RootBody?.name}" : sensorName; @@ -48,7 +48,7 @@ public override ISensor[] CreateSensors() /// /// Get the DisplayNodes of the hierarchy. /// - /// + /// The `DisplayNodes` of the hierarchy. internal IList GetDisplayNodes() { return GetPoseExtractor().GetDisplayNodes(); @@ -57,7 +57,7 @@ public override ISensor[] CreateSensors() /// /// Lazy construction of the PoseExtractor. /// - /// + /// Corresponding `RigidBodyPoseExtractor` RigidBodyPoseExtractor GetPoseExtractor() { if (m_PoseExtractor == null) diff --git a/com.unity.ml-agents/CHANGELOG.md b/com.unity.ml-agents/CHANGELOG.md index 8d963fe65e..1a0c5fece9 100755 --- a/com.unity.ml-agents/CHANGELOG.md +++ b/com.unity.ml-agents/CHANGELOG.md @@ -6,7 +6,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [4.0.0] - 2024-09-02 + ### Major Changes #### com.unity.ml-agents / com.unity.ml-agents.extensions (C#) - Upgraded to Sentis 1.3.0-pre.3 (#6070) diff --git a/com.unity.ml-agents/Editor/EditorUtilities.cs b/com.unity.ml-agents/Editor/EditorUtilities.cs index 8ef266f259..1238bce7c3 100644 --- a/com.unity.ml-agents/Editor/EditorUtilities.cs +++ b/com.unity.ml-agents/Editor/EditorUtilities.cs @@ -10,7 +10,7 @@ public static class EditorUtilities /// /// Whether or not properties that affect the model can be updated at the current time. /// - /// + /// True if the model can be updated, False if not. public static bool CanUpdateModelProperties() { return !Application.isPlaying; diff --git a/com.unity.ml-agents/Runtime/Academy.cs b/com.unity.ml-agents/Runtime/Academy.cs index 52bfabb478..33c694500c 100644 --- a/com.unity.ml-agents/Runtime/Academy.cs +++ b/com.unity.ml-agents/Runtime/Academy.cs @@ -136,7 +136,7 @@ public static bool IsInitialized /// /// Reports whether or not the communicator is on. /// - /// + /// /// /// True, if communicator is on, false otherwise. /// @@ -400,7 +400,7 @@ static int ReadPortFromArgs() /// then the values of the parameters generated from the training process can be /// retrieved here. /// - /// + /// The `EnvironmentParameters` instance. public EnvironmentParameters EnvironmentParameters { get { return m_EnvironmentParameters; } @@ -410,7 +410,7 @@ public EnvironmentParameters EnvironmentParameters /// Returns the instance. This instance can be used /// to record any statistics from the Unity environment. /// - /// + /// The `StatsRecorder` instance. public StatsRecorder StatsRecorder { get { return m_StatsRecorder; } diff --git a/com.unity.ml-agents/Runtime/Actuators/ActuatorComponent.cs b/com.unity.ml-agents/Runtime/Actuators/ActuatorComponent.cs index af34bef3a3..f1e3036eeb 100644 --- a/com.unity.ml-agents/Runtime/Actuators/ActuatorComponent.cs +++ b/com.unity.ml-agents/Runtime/Actuators/ActuatorComponent.cs @@ -19,7 +19,7 @@ public abstract class ActuatorComponent : MonoBehaviour /// The specification of the possible actions for this ActuatorComponent. /// This must produce the same results as the corresponding IActuator's ActionSpec. /// - /// + /// public abstract ActionSpec ActionSpec { get; } } } diff --git a/com.unity.ml-agents/Runtime/Actuators/ActuatorManager.cs b/com.unity.ml-agents/Runtime/Actuators/ActuatorManager.cs index 1ff35557d9..6bb14a7a34 100644 --- a/com.unity.ml-agents/Runtime/Actuators/ActuatorManager.cs +++ b/com.unity.ml-agents/Runtime/Actuators/ActuatorManager.cs @@ -22,7 +22,7 @@ internal class ActuatorManager : IList /// /// Flag used to check if our IActuators are ready for execution. /// - /// + /// bool m_ReadyForExecution; /// @@ -143,7 +143,7 @@ internal static ActionSpec CombineActionSpecs(IList actuators) /// /// Returns an ActionSpec representing the concatenation of all IActuator's ActionSpecs /// - /// + /// `ActionSpec` representing the concatenation of all `ActionSpec`s. public ActionSpec GetCombinedActionSpec() { ReadyActuatorsForExecution(); diff --git a/com.unity.ml-agents/Runtime/Actuators/IActionReceiver.cs b/com.unity.ml-agents/Runtime/Actuators/IActionReceiver.cs index 8f95de62e5..1dfc5de875 100644 --- a/com.unity.ml-agents/Runtime/Actuators/IActionReceiver.cs +++ b/com.unity.ml-agents/Runtime/Actuators/IActionReceiver.cs @@ -186,7 +186,7 @@ public interface IActionReceiver /// /// [Agents - Actions]: https://github.com/Unity-Technologies/ml-agents/blob/release_21_docs/docs/Learning-Environment-Design-Agents.md#actions /// - /// + /// void WriteDiscreteActionMask(IDiscreteActionMask actionMask); } } diff --git a/com.unity.ml-agents/Runtime/Actuators/IActuator.cs b/com.unity.ml-agents/Runtime/Actuators/IActuator.cs index aa2675905a..6a638bfd71 100644 --- a/com.unity.ml-agents/Runtime/Actuators/IActuator.cs +++ b/com.unity.ml-agents/Runtime/Actuators/IActuator.cs @@ -8,13 +8,13 @@ public interface IActuator : IActionReceiver, IHeuristicProvider /// /// The specification of the actions for this IActuator. /// - /// + /// ActionSpec ActionSpec { get; } /// /// Gets the name of this IActuator which will be used to sort it. /// - /// + /// The string name of this `IActuator` string Name { get; } /// @@ -33,7 +33,7 @@ public static class IActuatorExtensions /// Returns the number of discrete branches + the number of continuous actions. /// /// - /// + /// The number possible actions. public static int TotalNumberOfActions(this IActuator actuator) { return actuator.ActionSpec.NumContinuousActions + actuator.ActionSpec.NumDiscreteActions; diff --git a/com.unity.ml-agents/Runtime/Agent.cs b/com.unity.ml-agents/Runtime/Agent.cs index b1a3320e28..e3fe740204 100644 --- a/com.unity.ml-agents/Runtime/Agent.cs +++ b/com.unity.ml-agents/Runtime/Agent.cs @@ -228,9 +228,9 @@ internal struct AgentParameters /// Set to 0 for unlimited episode length. /// /// When an episode ends and a new one begins, the Agent object's - /// function is called. You can implement + /// function is called. You can implement /// to reset the agent or remove it from the - /// environment. An agent's episode can also end if you call its + /// environment. An agent's episode can also end if you call its /// method or an external process resets the environment through the . /// /// Consider limiting the number of steps in an episode to avoid wasting time during @@ -465,7 +465,7 @@ public void OnAfterDeserialize() /// Initializes the agent. Can be safely called multiple times. /// /// - /// This function calls your implementation, if one exists. + /// This function calls your implementation, if one exists. /// public void LazyInitialize() { @@ -560,7 +560,7 @@ enum DoneReason /// } /// /// - /// + /// protected virtual void OnDisable() { DemonstrationWriters.Clear(); @@ -685,9 +685,7 @@ internal void ReloadPolicy() /// /// Returns the current step counter (within the current episode). /// - /// - /// Current step count. - /// + /// The current step count. public int StepCount { get { return m_StepCount; } @@ -697,9 +695,7 @@ public int StepCount /// Returns the number of episodes that the Agent has completed (either /// was called, or maxSteps was reached). /// - /// - /// Current episode count. - /// + /// The current episode count. public int CompletedEpisodes { get { return m_CompletedEpisodes; } @@ -738,7 +734,7 @@ public void SetReward(float reward) /// Increments the step and episode rewards by the provided value. /// /// Use a positive reward to reinforce desired behavior. You can use a - /// negative reward to penalize mistakes. Use to + /// negative reward to penalize mistakes. Use to /// set the reward assigned to the current step with a specific value rather than /// increasing or decreasing it. /// @@ -796,8 +792,8 @@ void UpdateRewardStats() /// This should be used when the episode can no longer continue, such as when the Agent /// reaches the goal or fails at the task. /// - /// - /// + /// + /// public void EndEpisode() { EndEpisodeAndReset(DoneReason.DoneCalled); @@ -812,8 +808,8 @@ public void EndEpisode() /// This should be used when the episode could continue, but has gone on for /// a sufficient number of steps. /// - /// - /// + /// + /// public void EpisodeInterrupted() { EndEpisodeAndReset(DoneReason.MaxStepReached); @@ -838,11 +834,11 @@ void EndEpisodeAndReset(DoneReason reason) /// cannot use the decision every step, then you can request a decision less /// frequently. /// - /// You can add a component to the agent's + /// You can add a component to the agent's /// [GameObject] to drive the agent's decision making. When you use this component, /// do not call `RequestDecision()` separately. /// - /// Note that this function calls ; you do not need to + /// Note that this function calls ; you do not need to /// call both functions at the same time. /// /// [GameObject]: https://docs.unity3d.com/Manual/GameObjects.html @@ -859,7 +855,7 @@ public void RequestDecision() /// /// Call `RequestAction()` to repeat the previous action returned by the agent's /// most recent decision. A new decision is not requested. When you call this function, - /// the Agent instance invokes with the + /// the Agent instance invokes with the /// existing action vector. /// /// You can use `RequestAction()` in situations where an agent must take an action @@ -867,11 +863,11 @@ public void RequestDecision() /// agent that moves through its environment might need to apply an action to keep /// moving, but only needs to make a decision to change course or speed occasionally. /// - /// You can add a component to the agent's + /// You can add a component to the agent's /// [GameObject] to drive the agent's decision making and action frequency. When you /// use this component, do not call `RequestAction()` separately. /// - /// Note that calls `RequestAction()`; you do not need to + /// Note that calls `RequestAction()`; you do not need to /// call both functions at the same time. /// /// [GameObject]: https://docs.unity3d.com/Manual/GameObjects.html @@ -898,7 +894,7 @@ void ResetData() /// the Agent object needs references to other [GameObjects] in the scene, you /// can collect and store those references here. /// - /// Note that is called at the start of each of + /// Note that is called at the start of each of /// the agent's "episodes". You can use that function for items that need to be reset /// for each episode. /// @@ -919,7 +915,7 @@ public virtual void Initialize() { } /// The same array will be reused between steps. It is up to the user to initialize /// the values on each call, for example by calling `Array.Clear(actionsOut, 0, actionsOut.Length);`. /// Add values to the array at the same indexes as they are used in your - /// function, which receives this array and + /// function, which receives this array and /// implements the corresponding agent behavior. See [Actions] for more information /// about agent actions. /// Note : Do not create a new float array of action in the `Heuristic()` method, @@ -951,20 +947,20 @@ public virtual void Initialize() { } /// You can also use the [Input System package], which provides a more flexible and /// configurable input system. /// - /// public override void Heuristic(in ActionBuffers actionsOut) - /// { - /// var continuousActionsOut = actionsOut.ContinuousActions; - /// continuousActionsOut[0] = Input.GetAxis("Horizontal"); - /// continuousActionsOut[1] = Input.GetKey(KeyCode.Space) ? 1.0f : 0.0f; - /// continuousActionsOut[2] = Input.GetAxis("Vertical"); - /// } + /// public override void Heuristic(in ActionBuffers actionsOut) + /// { + /// var continuousActionsOut = actionsOut.ContinuousActions; + /// continuousActionsOut[0] = Input.GetAxis("Horizontal"); + /// continuousActionsOut[1] = Input.GetKey(KeyCode.Space) ? 1.0f : 0.0f; + /// continuousActionsOut[2] = Input.GetAxis("Vertical"); + /// } /// /// [Input Manager]: https://docs.unity3d.com/Manual/class-InputManager.html /// [Input System package]: https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/index.html /// /// The which contain the continuous and /// discrete action buffers to write to. - /// + /// public virtual void Heuristic(in ActionBuffers actionsOut) { Debug.LogWarning("Heuristic method called but not implemented. Returning placeholder actions."); @@ -1175,7 +1171,7 @@ void ResetSensors() /// implement a `CollectObservations()` function. /// /// Add vector observations to the parameter passed to - /// this method by calling the helper methods: + /// this method by calling the helper methods: /// - /// - /// - @@ -1240,7 +1236,7 @@ public ReadOnlyCollection GetStackedObservations() /// /// [Agents - Actions]: https://github.com/Unity-Technologies/ml-agents/blob/release_21_docs/docs/Learning-Environment-Design-Agents.md#actions /// - /// + /// public virtual void WriteDiscreteActionMask(IDiscreteActionMask actionMask) { } /// @@ -1248,7 +1244,7 @@ public virtual void WriteDiscreteActionMask(IDiscreteActionMask actionMask) { } /// on the provided action. /// /// - /// An action is passed to this function in the form of an . + /// An action is passed to this function in the form of an . /// Your implementation must use the array to direct the agent's behavior for the /// current step. /// @@ -1258,7 +1254,7 @@ public virtual void WriteDiscreteActionMask(IDiscreteActionMask actionMask) { } /// three values in ActionBuffers.ContinuousActions array to use as the force components. /// During training, the agent's policy learns to set those particular elements of /// the array to maximize the training rewards the agent receives. (Of course, - /// if you implement a function, it must use the same + /// if you implement a function, it must use the same /// elements of the action array for the same purpose since there is no learning /// involved.) /// @@ -1315,8 +1311,8 @@ public virtual void OnActionReceived(ActionBuffers actions) { } /// Implement `OnEpisodeBegin()` to set up an Agent instance at the beginning /// of an episode. /// - /// - /// + /// + /// public virtual void OnEpisodeBegin() { } /// diff --git a/com.unity.ml-agents/Runtime/Analytics/InferenceAnalytics.cs b/com.unity.ml-agents/Runtime/Analytics/InferenceAnalytics.cs index 76d0cdd53b..7cf2b85ac1 100644 --- a/com.unity.ml-agents/Runtime/Analytics/InferenceAnalytics.cs +++ b/com.unity.ml-agents/Runtime/Analytics/InferenceAnalytics.cs @@ -95,7 +95,6 @@ public static bool IsAnalyticsEnabled() /// List of ISensors for the Agent. Used to generate information about the observation space. /// ActionSpec for the Agent. Used to generate information about the action space. /// List of IActuators for the Agent. Used to generate information about the action space. - /// [Conditional("MLA_UNITY_ANALYTICS_MODULE")] public static void InferenceModelSet( ModelAsset nnModel, @@ -142,7 +141,7 @@ IList actuators /// /// /// - /// + /// `InferenceEvent` from the input model. internal static InferenceEvent GetEventForModel( ModelAsset nnModel, string behaviorName, @@ -203,7 +202,7 @@ IList actuators /// and the calculations are the same. /// /// - /// + /// The total model weight size in bytes. static long GetModelWeightSize(Model sentisModel) { long totalWeightsSizeInBytes = 0; @@ -260,7 +259,7 @@ public override string ToString() /// This increases the chance of a collision, but this should still be extremely rare. /// /// - /// + /// The hash of the model's layer data. static string GetModelHash(Model sentisModel) { var hash = new MLAgentsHash128(); diff --git a/com.unity.ml-agents/Runtime/Communicator/GrpcExtensions.cs b/com.unity.ml-agents/Runtime/Communicator/GrpcExtensions.cs index 480ea6dac2..8b9e8d7667 100644 --- a/com.unity.ml-agents/Runtime/Communicator/GrpcExtensions.cs +++ b/com.unity.ml-agents/Runtime/Communicator/GrpcExtensions.cs @@ -99,7 +99,7 @@ public static AgentInfoProto ToAgentInfoProto(this AgentInfo ai) /// Get summaries for the observations in the AgentInfo part of the AgentInfoActionPairProto. /// /// - /// + /// Summary of the observations. public static List GetObservationSummaries(this AgentInfoActionPairProto infoActionPair) { List summariesOut = new List(); @@ -337,7 +337,7 @@ public static ActionBuffers ToActionBuffers(this AgentActionProto proto) /// /// /// - /// + /// `ObservationProto` for the sensor. public static ObservationProto GetObservationProto(this ISensor sensor, ObservationWriter observationWriter) { var obsSpec = sensor.GetObservationSpec(); diff --git a/com.unity.ml-agents/Runtime/Communicator/ICommunicator.cs b/com.unity.ml-agents/Runtime/Communicator/ICommunicator.cs index 2036a2aa28..b6cba33f36 100644 --- a/com.unity.ml-agents/Runtime/Communicator/ICommunicator.cs +++ b/com.unity.ml-agents/Runtime/Communicator/ICommunicator.cs @@ -167,7 +167,7 @@ public interface ICommunicator : IDisposable /// /// A key to identify which behavior actions to get. /// A key to identify which Agent actions to get. - /// + /// `ActionBuffers` corresponding to the input key. ActionBuffers GetActions(string key, int agentId); } } diff --git a/com.unity.ml-agents/Runtime/Communicator/UnityRLCapabilities.cs b/com.unity.ml-agents/Runtime/Communicator/UnityRLCapabilities.cs index 3dffcf52b7..2bbb2da168 100644 --- a/com.unity.ml-agents/Runtime/Communicator/UnityRLCapabilities.cs +++ b/com.unity.ml-agents/Runtime/Communicator/UnityRLCapabilities.cs @@ -38,7 +38,7 @@ public UnityRLCapabilities( /// Will print a warning to the console if Python does not support base capabilities and will /// return true if the warning was printed. /// - /// + /// True if the warning was printed, False if not. public bool WarnOnPythonMissingBaseRLCapabilities() { if (BaseRLCapabilities) diff --git a/com.unity.ml-agents/Runtime/DecisionRequester.cs b/com.unity.ml-agents/Runtime/DecisionRequester.cs index 37b5ad299c..49e92b4703 100644 --- a/com.unity.ml-agents/Runtime/DecisionRequester.cs +++ b/com.unity.ml-agents/Runtime/DecisionRequester.cs @@ -15,7 +15,7 @@ namespace Unity.MLAgents /// The DecisionRequester component provides a convenient and flexible way to /// trigger the agent decision making process. Without a DecisionRequester, /// your implementation must manually call its - /// function. + /// function. /// [AddComponentMenu("ML Agents/Decision Requester", (int)MenuGroup.Default)] [RequireComponent(typeof(Agent))] @@ -116,7 +116,7 @@ void MakeRequests(int academyStepCount) /// Whether Agent.RequestDecision should be called on this update step. /// /// - /// + /// True if the agent `RequestDecision` should be called on this update step, False if not. protected virtual bool ShouldRequestDecision(DecisionRequestContext context) { return context.AcademyStepCount % DecisionPeriod == DecisionStep; @@ -126,7 +126,7 @@ protected virtual bool ShouldRequestDecision(DecisionRequestContext context) /// Whether Agent.RequestAction should be called on this update step. /// /// - /// + /// True if the agent `RequestAction` should be called on this update step, False if not. protected virtual bool ShouldRequestAction(DecisionRequestContext context) { return TakeActionsBetweenDecisions; diff --git a/com.unity.ml-agents/Runtime/Demonstrations/DemonstrationRecorder.cs b/com.unity.ml-agents/Runtime/Demonstrations/DemonstrationRecorder.cs index 13d623ebc3..91fac609db 100644 --- a/com.unity.ml-agents/Runtime/Demonstrations/DemonstrationRecorder.cs +++ b/com.unity.ml-agents/Runtime/Demonstrations/DemonstrationRecorder.cs @@ -150,7 +150,7 @@ internal static string SanitizeName(string demoName, int maxNameLength) /// /// /// - /// + /// Unique path. internal static string MakeDemonstrationFilePath( IFileSystem fileSystem, string demonstrationDirectory, string demonstrationName ) diff --git a/com.unity.ml-agents/Runtime/Demonstrations/DemonstrationWriter.cs b/com.unity.ml-agents/Runtime/Demonstrations/DemonstrationWriter.cs index bd4426102f..f99a0202c2 100644 --- a/com.unity.ml-agents/Runtime/Demonstrations/DemonstrationWriter.cs +++ b/com.unity.ml-agents/Runtime/Demonstrations/DemonstrationWriter.cs @@ -9,7 +9,7 @@ namespace Unity.MLAgents.Demonstrations /// /// Responsible for writing demonstration data to stream (typically a file stream). /// - /// + /// public class DemonstrationWriter { /// diff --git a/com.unity.ml-agents/Runtime/EnvironmentParameters.cs b/com.unity.ml-agents/Runtime/EnvironmentParameters.cs index fc1c667cd6..dbf69415b0 100644 --- a/com.unity.ml-agents/Runtime/EnvironmentParameters.cs +++ b/com.unity.ml-agents/Runtime/EnvironmentParameters.cs @@ -35,7 +35,7 @@ internal EnvironmentParameters() /// /// The parameter key /// Default value for this parameter. - /// + /// The parameter value for the specified key. public float GetWithDefault(string key, float defaultValue) { return m_Channel.GetWithDefault(key, defaultValue); diff --git a/com.unity.ml-agents/Runtime/Inference/SentisModelInfo.cs b/com.unity.ml-agents/Runtime/Inference/SentisModelInfo.cs index 791c1319d2..a2ef038299 100644 --- a/com.unity.ml-agents/Runtime/Inference/SentisModelInfo.cs +++ b/com.unity.ml-agents/Runtime/Inference/SentisModelInfo.cs @@ -97,7 +97,7 @@ public IReadOnlyList GetInputTensors() /// /// Gets the Discrete Action Output Shape as a Tensor. /// - /// + /// `Tensor` representation of the discret Action Ouptut Shape. public Tensor GetDiscreteActionOutputShape() { return (Tensor)GetTensorByName(TensorNames.DiscreteActionOutputShape); diff --git a/com.unity.ml-agents/Runtime/InplaceArray.cs b/com.unity.ml-agents/Runtime/InplaceArray.cs index 91208136d8..ab6fc0969f 100644 --- a/com.unity.ml-agents/Runtime/InplaceArray.cs +++ b/com.unity.ml-agents/Runtime/InplaceArray.cs @@ -84,7 +84,7 @@ public InplaceArray(T elem0, T elem1, T elem2, T elem3) /// The source must be non-empty and have at most 4 elements. /// /// - /// + /// Corresponding `InplaceArray` from the input IList. /// public static InplaceArray FromList(IList elems) { @@ -170,7 +170,7 @@ public int Length /// /// Returns a string representation of the array's elements. /// - /// + /// The string summary of the `InplaceArray`. /// public override string ToString() { @@ -231,7 +231,7 @@ public bool Equals(InplaceArray other) /// /// Get a hashcode for the array. /// - /// + /// The hashcode of the `InplaceArray`. public override int GetHashCode() { return (m_Elem0, m_Elem1, m_Elem2, m_Elem3, Length).GetHashCode(); diff --git a/com.unity.ml-agents/Runtime/Integrations/Match3/AbstractBoard.cs b/com.unity.ml-agents/Runtime/Integrations/Match3/AbstractBoard.cs index d2f218a3f7..1a5a15b90d 100644 --- a/com.unity.ml-agents/Runtime/Integrations/Match3/AbstractBoard.cs +++ b/com.unity.ml-agents/Runtime/Integrations/Match3/AbstractBoard.cs @@ -35,8 +35,8 @@ public struct BoardSize /// /// Check that all fields of the left-hand BoardSize are less than or equal to the field of the right-hand BoardSize /// - /// - /// + /// The first 'BoardSize' to compare. + /// The second 'BoardSize' to compare. /// True if all fields are less than or equal. public static bool operator <=(BoardSize lhs, BoardSize rhs) { @@ -47,8 +47,8 @@ public struct BoardSize /// /// Check that all fields of the left-hand BoardSize are greater than or equal to the field of the right-hand BoardSize /// - /// - /// + /// The first 'BoardSize' to compare. + /// The second 'BoardSize' to compare. /// True if all fields are greater than or equal. public static bool operator >=(BoardSize lhs, BoardSize rhs) { @@ -59,7 +59,7 @@ public struct BoardSize /// /// Return a string representation of the BoardSize. /// - /// + /// The string summary of the `BoardSize`. public override string ToString() { return @@ -76,7 +76,7 @@ public abstract class AbstractBoard : MonoBehaviour /// Return the maximum size of the board. This is used to determine the size of observations and actions, /// so the returned values must not change. /// - /// + /// The maxium size of the board. public abstract BoardSize GetMaxBoardSize(); /// @@ -85,7 +85,7 @@ public abstract class AbstractBoard : MonoBehaviour /// By default, this will return ; if your board doesn't change size, you don't need to /// override it. /// - /// + /// The current size of the board. public virtual BoardSize GetCurrentBoardSize() { return GetMaxBoardSize(); @@ -96,9 +96,9 @@ public virtual BoardSize GetCurrentBoardSize() /// This should be between 0 and BoardSize.NumCellTypes-1 (inclusive). /// The actual order of the values doesn't matter. /// - /// - /// - /// + /// The row index. + /// The collunm index. + /// Color of piece at given row and column. public abstract int GetCellType(int row, int col); /// @@ -108,7 +108,7 @@ public virtual BoardSize GetCurrentBoardSize() /// /// /// - /// + /// The special type of the piece at the give row and column. public abstract int GetSpecialType(int row, int col); /// @@ -121,7 +121,7 @@ public virtual BoardSize GetCurrentBoardSize() /// passed to IsMoveValid(). /// /// The move to check. - /// + /// True if the move is valid False otherwise. public abstract bool IsMoveValid(Move m); /// @@ -130,13 +130,13 @@ public virtual BoardSize GetCurrentBoardSize() /// requested. If this happens, it is safe to do nothing and request another move. /// /// The move to carry out. - /// + /// True if the move was made, False otherwise. public abstract bool MakeMove(Move m); /// /// Return the total number of moves possible for the board. /// - /// + /// The total number of moves possible for the board. public int NumMoves() { return Move.NumPotentialMoves(GetMaxBoardSize()); @@ -151,7 +151,7 @@ public int NumMoves() /// /// Iterate through all moves on the board. /// - /// + /// The `IEnumerator` for iterating all moves. public IEnumerable AllMoves() { var maxBoardSize = GetMaxBoardSize(); @@ -171,7 +171,7 @@ public IEnumerable AllMoves() /// /// Iterate through all valid moves on the board. /// - /// + /// The `IEnumerator` for iterating the valid moves. public IEnumerable ValidMoves() { var maxBoardSize = GetMaxBoardSize(); @@ -194,7 +194,7 @@ public IEnumerable ValidMoves() /// to be moved; to add extra logic, incorporate it into your method. /// /// - /// + /// True if swapping the cells would result in 3 or more cells of the same type in a row. public bool SimpleIsMoveValid(Move move) { using (TimerStack.Instance.Scoped("SimpleIsMoveValid")) @@ -232,7 +232,7 @@ public bool SimpleIsMoveValid(Move move) /// /// /// - /// + /// True if one of the cells that is swapped during a move matches 3 or more, False otherwise. bool CheckHalfMove(int newRow, int newCol, int newValue, Direction incomingDirection) { var currentBoardSize = GetCurrentBoardSize(); diff --git a/com.unity.ml-agents/Runtime/Integrations/Match3/Match3Actuator.cs b/com.unity.ml-agents/Runtime/Integrations/Match3/Match3Actuator.cs index 9bd60bd571..62a2b7df37 100644 --- a/com.unity.ml-agents/Runtime/Integrations/Match3/Match3Actuator.cs +++ b/com.unity.ml-agents/Runtime/Integrations/Match3/Match3Actuator.cs @@ -135,7 +135,7 @@ public void Heuristic(in ActionBuffers actionsOut) /// By default, EvalMovePoints() returns 1, so all valid moves are equally likely. Inherit from this class and /// override EvalMovePoints() to use your game's scoring as a better estimate. /// - /// + /// Valid mode. internal int GreedyMove() { var bestMoveIndex = 0; diff --git a/com.unity.ml-agents/Runtime/Integrations/Match3/Match3Sensor.cs b/com.unity.ml-agents/Runtime/Integrations/Match3/Match3Sensor.cs index 50fcd7ece6..282aec5308 100644 --- a/com.unity.ml-agents/Runtime/Integrations/Match3/Match3Sensor.cs +++ b/com.unity.ml-agents/Runtime/Integrations/Match3/Match3Sensor.cs @@ -89,7 +89,7 @@ public Match3Sensor(AbstractBoard board, GridValueProvider gvp, int oneHotSize, /// The abstract board. /// Whether to produce vector or visual observations /// Name of the sensor. - /// + /// `Match3Sensor` that encodes the board cells as observations. public static Match3Sensor CellTypeSensor(AbstractBoard board, Match3ObservationType obsType, string name) { var maxBoardSize = board.GetMaxBoardSize(); @@ -103,7 +103,7 @@ public static Match3Sensor CellTypeSensor(AbstractBoard board, Match3Observation /// The abstract board. /// Whether to produce vector or visual observations /// Name of the sensor. - /// + /// `Match3Sensor` that encodes the board cell special types as observations. public static Match3Sensor SpecialTypeSensor(AbstractBoard board, Match3ObservationType obsType, string name) { var maxBoardSize = board.GetMaxBoardSize(); diff --git a/com.unity.ml-agents/Runtime/Integrations/Match3/Move.cs b/com.unity.ml-agents/Runtime/Integrations/Match3/Move.cs index d4aac5f854..96fc75b857 100644 --- a/com.unity.ml-agents/Runtime/Integrations/Match3/Move.cs +++ b/com.unity.ml-agents/Runtime/Integrations/Match3/Move.cs @@ -66,7 +66,7 @@ public struct Move /// /// Must be between 0 and NumPotentialMoves(maxRows, maxCols). /// - /// + /// Corresponding `Move`. /// public static Move FromMoveIndex(int moveIndex, BoardSize maxBoardSize) { @@ -147,7 +147,7 @@ public void Next(BoardSize maxBoardSize) /// /// /// - /// + /// Corresponding `Move`. public static Move FromPositionAndDirection(int row, int col, Direction dir, BoardSize maxBoardSize) { // Check for out-of-bounds @@ -209,7 +209,7 @@ public static Move FromPositionAndDirection(int row, int col, Direction dir, Boa /// This will be passed the return value from AbstractBoard.GetCurrentBoardSize(). /// /// - /// + /// True if move is valide given input `boardSize`, False if not. public bool InRangeForBoard(BoardSize boardSize) { var (otherRow, otherCol) = OtherCell(); @@ -222,7 +222,7 @@ public bool InRangeForBoard(BoardSize boardSize) /// /// Get the other row and column that correspond to this move. /// - /// + /// Corresponding other (row, column) tuple for this move. /// public (int Row, int Column) OtherCell() { @@ -244,7 +244,7 @@ public bool InRangeForBoard(BoardSize boardSize) /// /// Get the opposite direction of this move. /// - /// + /// Oposit `Direction` of this move. /// public Direction OtherDirection() { @@ -268,7 +268,7 @@ public Direction OtherDirection() /// This is equivalent to the number of internal edges in the board. /// /// - /// + /// Number of potential moves given a boardsize. public static int NumPotentialMoves(BoardSize maxBoardSize) { return maxBoardSize.Rows * (maxBoardSize.Columns - 1) + (maxBoardSize.Rows - 1) * (maxBoardSize.Columns); diff --git a/com.unity.ml-agents/Runtime/Policies/BehaviorParameters.cs b/com.unity.ml-agents/Runtime/Policies/BehaviorParameters.cs index 598a450d30..06dc8d6e16 100644 --- a/com.unity.ml-agents/Runtime/Policies/BehaviorParameters.cs +++ b/com.unity.ml-agents/Runtime/Policies/BehaviorParameters.cs @@ -63,7 +63,7 @@ public enum ObservableAttributeOptions } /// - /// A component for setting an instance's behavior and + /// A component for setting an instance's behavior and /// brain properties. /// /// At runtime, this component generates the agent's policy objects diff --git a/com.unity.ml-agents/Runtime/Policies/BrainParameters.cs b/com.unity.ml-agents/Runtime/Policies/BrainParameters.cs index 882521a892..59b1f0e8c0 100644 --- a/com.unity.ml-agents/Runtime/Policies/BrainParameters.cs +++ b/com.unity.ml-agents/Runtime/Policies/BrainParameters.cs @@ -28,7 +28,7 @@ internal enum SpaceType /// /// /// Set brain parameters for an instance using the - /// component attached to the agent's [GameObject]. + /// component attached to the agent's [GameObject]. /// /// [GameObject]: https://docs.unity3d.com/Manual/GameObjects.html /// diff --git a/com.unity.ml-agents/Runtime/SensorHelper.cs b/com.unity.ml-agents/Runtime/SensorHelper.cs index 978fc59f5e..97a21521e7 100644 --- a/com.unity.ml-agents/Runtime/SensorHelper.cs +++ b/com.unity.ml-agents/Runtime/SensorHelper.cs @@ -17,7 +17,7 @@ public static class SensorHelper /// /// /// - /// + /// True if the observations for the provided sensor equal the expected values, False if not. public static bool CompareObservation(ISensor sensor, float[] expected, out string errorMessage) { var numExpected = expected.Length; @@ -79,7 +79,7 @@ public static bool CompareObservation(ISensor sensor, float[] expected, out stri /// /// /// - /// + /// True if the generated observation for the provided sensor equal the expected values, False if not. public static bool CompareObservation(ISensor sensor, float[,,] expected, out string errorMessage) { var tensorShape = new TensorShape(0, expected.GetLength(0), expected.GetLength(1), expected.GetLength(2)); diff --git a/com.unity.ml-agents/Runtime/Sensors/BoxOverlapChecker.cs b/com.unity.ml-agents/Runtime/Sensors/BoxOverlapChecker.cs index 5ec58b1358..c73c36015d 100644 --- a/com.unity.ml-agents/Runtime/Sensors/BoxOverlapChecker.cs +++ b/com.unity.ml-agents/Runtime/Sensors/BoxOverlapChecker.cs @@ -152,7 +152,7 @@ public void UpdateGizmo() /// /// /// - /// + /// Found number of overlapping boxes. int BufferResizingOverlapBoxNonAlloc(Vector3 cellCenter, Vector3 halfCellScale, Quaternion rotation) { int numFound; diff --git a/com.unity.ml-agents/Runtime/Sensors/CameraSensor.cs b/com.unity.ml-agents/Runtime/Sensors/CameraSensor.cs index 12dc651387..f4e9275d4b 100644 --- a/com.unity.ml-agents/Runtime/Sensors/CameraSensor.cs +++ b/com.unity.ml-agents/Runtime/Sensors/CameraSensor.cs @@ -75,7 +75,7 @@ public string GetName() /// The dimensions have translational equivariance along width and height, /// and no property along the channels dimension. /// - /// + /// The `ObservationSpec`. public ObservationSpec GetObservationSpec() { return m_ObservationSpec; @@ -99,7 +99,7 @@ public byte[] GetCompressedObservation() /// Writes out the generated, uncompressed image to the provided . /// /// Where the observation is written to. - /// + /// The number of elements written. public int Write(ObservationWriter writer) { using (TimerStack.Instance.Scoped("CameraSensor.WriteToTensor")) diff --git a/com.unity.ml-agents/Runtime/Sensors/CompressionSpec.cs b/com.unity.ml-agents/Runtime/Sensors/CompressionSpec.cs index 76e283a14a..52248b2609 100644 --- a/com.unity.ml-agents/Runtime/Sensors/CompressionSpec.cs +++ b/com.unity.ml-agents/Runtime/Sensors/CompressionSpec.cs @@ -72,7 +72,7 @@ public CompressionSpec(SensorCompressionType sensorCompressionType, int[] compre /// /// Return a CompressionSpec indicating no compression. This is recommended for most sensors. /// - /// + /// `CompressionSpec` indicating no compression. public static CompressionSpec Default() { return new CompressionSpec @@ -86,7 +86,7 @@ public static CompressionSpec Default() /// Return whether the compressed channel mapping is "trivial"; if so it doesn't need to be sent to the /// trainer. /// - /// + /// True if the compressed channel mapping is trivial, False if not. internal bool IsTrivialMapping() { var mapping = CompressedChannelMapping; diff --git a/com.unity.ml-agents/Runtime/Sensors/GridSensorBase.cs b/com.unity.ml-agents/Runtime/Sensors/GridSensorBase.cs index 09e7c92c40..24df9ea228 100644 --- a/com.unity.ml-agents/Runtime/Sensors/GridSensorBase.cs +++ b/com.unity.ml-agents/Runtime/Sensors/GridSensorBase.cs @@ -189,13 +189,13 @@ void GridValuesToTexture(int channelIndex, int numChannelsToAdd) /// Default is to record the detected tag index. /// /// This method can be overridden to encode the observation differently or get custom data from the object. - /// When overriding this method, and + /// When overriding this method, and /// might also need to change accordingly. /// /// The game object that was detected within a certain cell /// The index of the detectedObject's tag in the DetectableObjects list /// The buffer to write the observation values. - /// The buffer size is configured by . + /// The buffer size is configured by . /// /// /// Here is an example of overriding GetObjectData to get the velocity of a potential Rigidbody: @@ -218,8 +218,8 @@ protected virtual void GetObjectData(GameObject detectedObject, int tagIndex, fl } /// - /// Get the observation size for each cell. This will be the size of dataBuffer for . - /// If overriding , override this method as well to the custom observation size. + /// Get the observation size for each cell. This will be the size of dataBuffer for . + /// If overriding , override this method as well to the custom observation size. /// /// The observation size of each cell. protected virtual int GetCellObservationSize() @@ -229,7 +229,7 @@ protected virtual int GetCellObservationSize() /// /// Whether the data is normalized within [0, 1]. The sensor can only use PNG compression if the data is normailzed. - /// If overriding , override this method as well according to the custom observation values. + /// If overriding , override this method as well according to the custom observation values. /// /// Bool value indicating whether data is normalized. protected virtual bool IsDataNormalized() @@ -239,7 +239,7 @@ protected virtual bool IsDataNormalized() /// /// Whether to process all detected colliders in a cell. Default to false and only use the one closest to the agent. - /// If overriding , consider override this method when needed. + /// If overriding , consider override this method when needed. /// /// Bool value indicating whether to process all detected colliders in a cell. protected internal virtual ProcessCollidersMethod GetProcessCollidersMethod() diff --git a/com.unity.ml-agents/Runtime/Sensors/ISensor.cs b/com.unity.ml-agents/Runtime/Sensors/ISensor.cs index ed93910fa0..f9f4f99ce0 100644 --- a/com.unity.ml-agents/Runtime/Sensors/ISensor.cs +++ b/com.unity.ml-agents/Runtime/Sensors/ISensor.cs @@ -114,7 +114,7 @@ public static class SensorExtensions /// shape elements). /// /// - /// + /// The total number of elements in the `ISensor`'s observation. public static int ObservationSize(this ISensor sensor) { var obsSpec = sensor.GetObservationSpec(); diff --git a/com.unity.ml-agents/Runtime/Sensors/ObservationSpec.cs b/com.unity.ml-agents/Runtime/Sensors/ObservationSpec.cs index 2974d7982d..af2fbc66b2 100644 --- a/com.unity.ml-agents/Runtime/Sensors/ObservationSpec.cs +++ b/com.unity.ml-agents/Runtime/Sensors/ObservationSpec.cs @@ -58,7 +58,7 @@ public int Rank /// /// /// - /// + /// `ObservationSpec` for 1-D observations of the requested length. public static ObservationSpec Vector(int length, ObservationType obsType = ObservationType.Default) { return new ObservationSpec( @@ -73,7 +73,7 @@ public static ObservationSpec Vector(int length, ObservationType obsType = Obser /// /// /// - /// + /// `ObservationSpec` for variable-length observations. public static ObservationSpec VariableLength(int obsSize, int maxNumObs) { var dimProps = new InplaceArray( @@ -94,7 +94,7 @@ public static ObservationSpec VariableLength(int obsSize, int maxNumObs) /// /// /// - /// + /// `ObservationSpec` for visual-like observations public static ObservationSpec Visual(int channels, int height, int width, ObservationType obsType = ObservationType.Default) { var dimProps = new InplaceArray( diff --git a/com.unity.ml-agents/Runtime/Sensors/OneHotGridSensor.cs b/com.unity.ml-agents/Runtime/Sensors/OneHotGridSensor.cs index 648c702d80..89be650e05 100644 --- a/com.unity.ml-agents/Runtime/Sensors/OneHotGridSensor.cs +++ b/com.unity.ml-agents/Runtime/Sensors/OneHotGridSensor.cs @@ -49,7 +49,7 @@ protected internal override ProcessCollidersMethod GetProcessCollidersMethod() /// The game object that was detected within a certain cell /// The index of the detectedObject's tag in the DetectableObjects list /// The buffer to write the observation values. - /// The buffer size is configured by . + /// The buffer size is configured by . /// protected override void GetObjectData(GameObject detectedObject, int tagIndex, float[] dataBuffer) { diff --git a/com.unity.ml-agents/Runtime/Sensors/RayPerceptionSensor.cs b/com.unity.ml-agents/Runtime/Sensors/RayPerceptionSensor.cs index 55a6086660..5ecf3ca49b 100644 --- a/com.unity.ml-agents/Runtime/Sensors/RayPerceptionSensor.cs +++ b/com.unity.ml-agents/Runtime/Sensors/RayPerceptionSensor.cs @@ -82,7 +82,7 @@ public struct RayPerceptionInput /// /// Returns the expected number of floats in the output. /// - /// + /// The expected number of floats in the output. public int OutputSize() { return ((DetectableTags?.Count ?? 0) + 2) * (Angles?.Count ?? 0); @@ -317,7 +317,7 @@ internal void SetRayPerceptionInput(RayPerceptionInput rayInput) /// . /// /// Where the ray perception observations are written to. - /// + /// The number of written observations. public int Write(ObservationWriter writer) { using (TimerStack.Instance.Scoped("RayPerceptionSensor.Perceive")) @@ -427,7 +427,6 @@ public static RayPerceptionOutput Perceive(RayPerceptionInput input, bool batche /// /// /// - /// internal static void PerceiveBatchedRays(ref RayPerceptionOutput.RayOutput[] batchedRaycastOutputs, RayPerceptionInput input) { var numRays = input.Angles.Count; @@ -554,7 +553,7 @@ internal static void PerceiveBatchedRays(ref RayPerceptionOutput.RayOutput[] bat /// /// /// - /// + /// `RayOutput` result of a single raycast. internal static RayPerceptionOutput.RayOutput PerceiveSingleRay( RayPerceptionInput input, int rayIndex diff --git a/com.unity.ml-agents/Runtime/Sensors/RayPerceptionSensorComponentBase.cs b/com.unity.ml-agents/Runtime/Sensors/RayPerceptionSensorComponentBase.cs index 35c4fd5320..a959f13aa6 100644 --- a/com.unity.ml-agents/Runtime/Sensors/RayPerceptionSensorComponentBase.cs +++ b/com.unity.ml-agents/Runtime/Sensors/RayPerceptionSensorComponentBase.cs @@ -188,13 +188,13 @@ public RayPerceptionSensor RaySensor /// /// Returns the for the associated raycast sensor. /// - /// + /// `RayPerceptionCastType` for the associated raycast sensor. public abstract RayPerceptionCastType GetCastType(); /// /// Returns the amount that the ray start is offset up or down by. /// - /// + /// The amount that the ray start is offset up or down by. public virtual float GetStartVerticalOffset() { return 0f; @@ -203,7 +203,7 @@ public virtual float GetStartVerticalOffset() /// /// Returns the amount that the ray end is offset up or down by. /// - /// + /// The amount that the ray end is offset up or down by. public virtual float GetEndVerticalOffset() { return 0f; @@ -212,7 +212,7 @@ public virtual float GetEndVerticalOffset() /// /// Returns an initialized raycast sensor. /// - /// + /// Initialized `ISensor` array. public override ISensor[] CreateSensors() { var rayPerceptionInput = GetRayPerceptionInput(); @@ -240,7 +240,7 @@ public override ISensor[] CreateSensors() /// Should be deprecated with a future major version release (doing so will break existing /// models). /// - /// + /// The corresponding ray angles. internal static float[] GetRayAnglesAlternating(int raysPerDirection, float maxRayDegrees) { // Example: @@ -267,7 +267,7 @@ internal static float[] GetRayAnglesAlternating(int raysPerDirection, float maxR /// Orders the rays from the left-most to the right-most which makes using a convolution /// in the model easier. /// - /// + /// The corresponding ray angles. internal static float[] GetRayAngles(int raysPerDirection, float maxRayDegrees) { // Example: @@ -286,7 +286,7 @@ internal static float[] GetRayAngles(int raysPerDirection, float maxRayDegrees) /// /// Get the RayPerceptionInput that is used by the . /// - /// + /// `RayPerceptionInput` that is used by the sensor. public RayPerceptionInput GetRayPerceptionInput() { var rayAngles = m_AlternatingRayOrder ? diff --git a/com.unity.ml-agents/Runtime/Sensors/Reflection/ObservableAttribute.cs b/com.unity.ml-agents/Runtime/Sensors/Reflection/ObservableAttribute.cs index a88528c873..e476a1170f 100644 --- a/com.unity.ml-agents/Runtime/Sensors/Reflection/ObservableAttribute.cs +++ b/com.unity.ml-agents/Runtime/Sensors/Reflection/ObservableAttribute.cs @@ -86,7 +86,7 @@ public ObservableAttribute(string name = null, int numStackedObservations = 1) /// /// Object being reflected /// Whether to exclude inherited properties or not. - /// + /// `FieldInfo` for all fields that have an O`bservableAttribute`. static IEnumerable<(FieldInfo, ObservableAttribute)> GetObservableFields(object o, bool excludeInherited) { // TODO cache these (and properties) by type, so that we only have to reflect once. @@ -107,7 +107,7 @@ public ObservableAttribute(string name = null, int numStackedObservations = 1) /// /// Object being reflected /// Whether to exclude inherited properties or not. - /// + /// `PropertyInfo` for all fields that have an `ObservableAttribute`. static IEnumerable<(PropertyInfo, ObservableAttribute)> GetObservableProperties(object o, bool excludeInherited) { var bindingFlags = k_BindingFlags | (excludeInherited ? BindingFlags.DeclaredOnly : 0); @@ -127,7 +127,7 @@ public ObservableAttribute(string name = null, int numStackedObservations = 1) /// /// Object being reflected /// Whether to exclude inherited properties or not. - /// + /// Corresponding list of sensors. internal static List CreateObservableSensors(object o, bool excludeInherited) { var sensorsOut = new List(); @@ -165,7 +165,7 @@ internal static List CreateObservableSensors(object o, bool excludeInhe /// /// /// - /// + /// The created `ISensor`. /// static ISensor CreateReflectionSensor(object o, FieldInfo fieldInfo, PropertyInfo propertyInfo, ObservableAttribute observableAttribute) { @@ -237,7 +237,7 @@ static ISensor CreateReflectionSensor(object o, FieldInfo fieldInfo, PropertyInf /// /// /// - /// + /// The total observation size. internal static int GetTotalObservationSize(object o, bool excludeInherited, List errorsOut) { int sizeOut = 0; diff --git a/com.unity.ml-agents/Runtime/Sensors/Reflection/ReflectionSensorBase.cs b/com.unity.ml-agents/Runtime/Sensors/Reflection/ReflectionSensorBase.cs index 9a0219146e..49aadfe595 100644 --- a/com.unity.ml-agents/Runtime/Sensors/Reflection/ReflectionSensorBase.cs +++ b/com.unity.ml-agents/Runtime/Sensors/Reflection/ReflectionSensorBase.cs @@ -70,7 +70,7 @@ public int Write(ObservationWriter writer) /// Get either the reflected field, or return the reflected property. /// This should be used by implementations in their WriteReflectedField() method. /// - /// + /// `object` representing either the reflected field, or return the reflected property. protected object GetReflectedValue() { return m_FieldInfo != null ? diff --git a/com.unity.ml-agents/Runtime/Sensors/VectorSensorComponent.cs b/com.unity.ml-agents/Runtime/Sensors/VectorSensorComponent.cs index 26deb7434f..71e36d9b5b 100644 --- a/com.unity.ml-agents/Runtime/Sensors/VectorSensorComponent.cs +++ b/com.unity.ml-agents/Runtime/Sensors/VectorSensorComponent.cs @@ -64,7 +64,7 @@ public int ObservationStacks /// /// Creates a VectorSensor. /// - /// + /// `ISensor` array. public override ISensor[] CreateSensors() { m_Sensor = new VectorSensor(m_ObservationSize, m_SensorName, m_ObservationType); @@ -78,7 +78,7 @@ public override ISensor[] CreateSensors() /// /// Returns the underlying VectorSensor /// - /// + /// Underlying `VectorSensor`. public VectorSensor GetSensor() { return m_Sensor; diff --git a/com.unity.ml-agents/Runtime/SideChannels/EnvironmentParametersChannel.cs b/com.unity.ml-agents/Runtime/SideChannels/EnvironmentParametersChannel.cs index 0e2b88b6ec..0395ca00c1 100644 --- a/com.unity.ml-agents/Runtime/SideChannels/EnvironmentParametersChannel.cs +++ b/com.unity.ml-agents/Runtime/SideChannels/EnvironmentParametersChannel.cs @@ -111,7 +111,7 @@ protected override void OnMessageReceived(IncomingMessage msg) /// /// Parameter key. /// Default value to return. - /// + /// The parameter value associated with the provided key. public float GetWithDefault(string key, float defaultValue) { Func valueOut; @@ -133,7 +133,7 @@ public void RegisterCallback(string key, Action action) /// /// Returns all parameter keys that have a registered value. /// - /// + /// All parameter keys that have a registered value. public IList ListParameters() { return new List(m_Parameters.Keys); diff --git a/com.unity.ml-agents/Runtime/SideChannels/FloatPropertiesChannel.cs b/com.unity.ml-agents/Runtime/SideChannels/FloatPropertiesChannel.cs index f4c293547b..d93728b0eb 100644 --- a/com.unity.ml-agents/Runtime/SideChannels/FloatPropertiesChannel.cs +++ b/com.unity.ml-agents/Runtime/SideChannels/FloatPropertiesChannel.cs @@ -67,7 +67,7 @@ public void Set(string key, float value) /// /// The string identifier of the property. /// The default value of the property. - /// + /// The parameter value associated with the provided key. public float GetWithDefault(string key, float defaultValue) { float valueOut; diff --git a/com.unity.ml-agents/Runtime/SideChannels/IncomingMessage.cs b/com.unity.ml-agents/Runtime/SideChannels/IncomingMessage.cs index 90425955de..a159591862 100644 --- a/com.unity.ml-agents/Runtime/SideChannels/IncomingMessage.cs +++ b/com.unity.ml-agents/Runtime/SideChannels/IncomingMessage.cs @@ -30,7 +30,7 @@ public IncomingMessage(byte[] data) /// Read a boolean value from the message. /// /// Default value to use if the end of the message is reached. - /// + /// True if boolean was read by the reader, False if not. public bool ReadBoolean(bool defaultValue = false) { return CanReadMore() ? m_Reader.ReadBoolean() : defaultValue; @@ -40,7 +40,7 @@ public bool ReadBoolean(bool defaultValue = false) /// Read an integer value from the message. /// /// Default value to use if the end of the message is reached. - /// + /// True if int32 was read by the reader, False if not. public int ReadInt32(int defaultValue = 0) { return CanReadMore() ? m_Reader.ReadInt32() : defaultValue; @@ -50,7 +50,7 @@ public int ReadInt32(int defaultValue = 0) /// Read a float value from the message. /// /// Default value to use if the end of the message is reached. - /// + /// True if float32 was read by the reader, False if not. public float ReadFloat32(float defaultValue = 0.0f) { return CanReadMore() ? m_Reader.ReadSingle() : defaultValue; @@ -60,7 +60,7 @@ public float ReadFloat32(float defaultValue = 0.0f) /// Read a string value from the message. /// /// Default value to use if the end of the message is reached. - /// + /// True if string was read by the reader, False if not. public string ReadString(string defaultValue = default) { if (!CanReadMore()) @@ -77,7 +77,7 @@ public string ReadString(string defaultValue = default) /// Reads a list of floats from the message. The length of the list is stored in the message. /// /// Default value to use if the end of the message is reached. - /// + /// True if list of float was read by the reader, False if not. public IList ReadFloatList(IList defaultValue = default) { if (!CanReadMore()) @@ -99,7 +99,7 @@ public IList ReadFloatList(IList defaultValue = default) /// Gets the original data of the message. Note that this will return all of the data, /// even if part of it has already been read. /// - /// + /// Original data of the message. public byte[] GetRawBytes() { return m_Data; @@ -117,7 +117,7 @@ public void Dispose() /// /// Whether or not there is more data left in the stream that can be read. /// - /// + /// True if there is still data left in the stream that can be read, False if not. [MethodImpl(MethodImplOptions.AggressiveInlining)] bool CanReadMore() { diff --git a/com.unity.ml-agents/Runtime/SideChannels/OutgoingMessage.cs b/com.unity.ml-agents/Runtime/SideChannels/OutgoingMessage.cs index 70a7948e22..673b4f20b9 100644 --- a/com.unity.ml-agents/Runtime/SideChannels/OutgoingMessage.cs +++ b/com.unity.ml-agents/Runtime/SideChannels/OutgoingMessage.cs @@ -101,7 +101,7 @@ public void SetRawBytes(byte[] data) /// /// Read the byte array of the message. /// - /// + /// The byte array of the message. internal byte[] ToByteArray() { return m_Stream.ToArray(); diff --git a/com.unity.ml-agents/Runtime/SideChannels/SideChannelManager.cs b/com.unity.ml-agents/Runtime/SideChannels/SideChannelManager.cs index bdcc596b85..b2d56b9c34 100644 --- a/com.unity.ml-agents/Runtime/SideChannels/SideChannelManager.cs +++ b/com.unity.ml-agents/Runtime/SideChannels/SideChannelManager.cs @@ -89,7 +89,7 @@ internal static void UnregisterAllSideChannels() /// If there are multiple SideChannels of the same type registered, the returned instance is arbitrary. /// /// - /// + /// SideChannel if there is one registered. internal static T GetSideChannel() where T : SideChannel { foreach (var sc in s_RegisteredChannels.Values) @@ -106,7 +106,7 @@ internal static T GetSideChannel() where T : SideChannel /// Grabs the messages that the registered side channels will send to Python at the current step /// into a singe byte array. /// - /// + /// The message that the registered side channels will send to Python at the current step. internal static byte[] GetSideChannelMessage() { return GetSideChannelMessage(s_RegisteredChannels); @@ -117,7 +117,7 @@ internal static byte[] GetSideChannelMessage() /// into a singe byte array. /// /// A dictionary of channel type to channel. - /// + /// The message that the registered side channels will send to Python at the current step. internal static byte[] GetSideChannelMessage(Dictionary sideChannels) { if (!HasOutgoingMessages(sideChannels)) @@ -151,7 +151,7 @@ internal static byte[] GetSideChannelMessage(Dictionary sideC /// Check whether any of the sidechannels have queued messages. /// /// - /// + /// True if the sidechannel has queued messages, False if not. static bool HasOutgoingMessages(Dictionary sideChannels) { foreach (var sideChannel in sideChannels.Values) diff --git a/com.unity.ml-agents/Runtime/Timer.cs b/com.unity.ml-agents/Runtime/Timer.cs index 7de390343f..a0f2bcf8d8 100644 --- a/com.unity.ml-agents/Runtime/Timer.cs +++ b/com.unity.ml-agents/Runtime/Timer.cs @@ -160,7 +160,7 @@ public void End() /// Note that these allocations only happen once for a given timed block. /// /// - /// + /// The `TimerNode` child node. public TimerNode GetChild(string name) { // Lazily create the children dictionary. @@ -185,7 +185,7 @@ public TimerNode GetChild(string name) /// /// /// - /// + /// The string summary of the `TimerNode`. public string DebugGetTimerString(string parentName = "", int level = 0) { var indent = new string(' ', 2 * level); // TODO generalize @@ -456,7 +456,7 @@ void Pop() /// Start a scoped timer. This should be used with the "using" statement. /// /// - /// + /// `TimerStack` scoped timer. public TimerStack Scoped(string name) { Push(name); @@ -478,7 +478,7 @@ public void Dispose() /// Get a string representation of the timers. /// Potentially slow so call sparingly. /// - /// + /// The string summary of the `TimerStack`. internal string DebugGetTimerString() { return m_RootNode.DebugGetTimerString(); diff --git a/com.unity.ml-agents/Tests/Editor/Integrations/Match3/Match3SensorTests.cs b/com.unity.ml-agents/Tests/Editor/Integrations/Match3/Match3SensorTests.cs index 1dc9d6f150..09d882427a 100644 --- a/com.unity.ml-agents/Tests/Editor/Integrations/Match3/Match3SensorTests.cs +++ b/com.unity.ml-agents/Tests/Editor/Integrations/Match3/Match3SensorTests.cs @@ -351,7 +351,7 @@ public void TestCompressedVisualObservationsSpecial(bool fullBoard, bool useSpec /// Helper method for un-concatenating PNG observations. /// /// - /// + /// The PNG observations. List SplitPNGs(byte[] concatenated) { var pngsOut = new List();