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();