浏览代码

Rename protobuf objects to be suffixed with 'Proto' in python and C#. (#2646)

/develop-gpu-test
GitHub 5 年前
当前提交
2f74b3cc
共有 143 个文件被更改,包括 1921 次插入933 次删除
  1. 4
      UnitySDK/Assets/ML-Agents/Scripts/Academy.cs
  2. 10
      UnitySDK/Assets/ML-Agents/Scripts/Agent.cs
  3. 20
      UnitySDK/Assets/ML-Agents/Scripts/Batcher.cs
  4. 27
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/CustomAction.cs
  5. 28
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/CustomObservation.cs
  6. 28
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/CustomResetParameters.cs
  7. 28
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/Header.cs
  8. 49
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityInput.cs
  9. 58
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityMessage.cs
  10. 50
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityOutput.cs
  11. 27
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityRlInitializationInput.cs
  12. 44
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityRlInitializationOutput.cs
  13. 68
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityRlInput.cs
  14. 56
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityRlOutput.cs
  15. 8
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityToExternal.cs
  16. 48
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityToExternalGrpc.cs
  17. 2
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/AgentAction.cs.meta
  18. 44
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/AgentInfo.cs
  19. 2
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/AgentInfo.cs.meta
  20. 2
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/BrainParameters.cs.meta
  21. 2
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/Command.cs.meta
  22. 25
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/DemonstrationMeta.cs
  23. 2
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/DemonstrationMeta.cs.meta
  24. 26
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/EngineConfiguration.cs
  25. 2
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/EngineConfiguration.cs.meta
  26. 2
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/EnvironmentParameters.cs.meta
  27. 22
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/Resolution.cs
  28. 2
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/SpaceType.cs.meta
  29. 19
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/RpcCommunicator.cs
  30. 6
      UnitySDK/Assets/ML-Agents/Scripts/ICommunicator.cs
  31. 18
      UnitySDK/Assets/ML-Agents/Scripts/SocketCommunicator.cs
  32. 6
      ml-agents-envs/mlagents/envs/brain.py
  33. 8
      ml-agents-envs/mlagents/envs/communicator.py
  34. 20
      ml-agents-envs/mlagents/envs/communicator_objects/custom_action_pb2.py
  35. 4
      ml-agents-envs/mlagents/envs/communicator_objects/custom_action_pb2.pyi
  36. 20
      ml-agents-envs/mlagents/envs/communicator_objects/custom_observation_pb2.py
  37. 4
      ml-agents-envs/mlagents/envs/communicator_objects/custom_observation_pb2.pyi
  38. 20
      ml-agents-envs/mlagents/envs/communicator_objects/custom_reset_parameters_pb2.py
  39. 4
      ml-agents-envs/mlagents/envs/communicator_objects/custom_reset_parameters_pb2.pyi
  40. 24
      ml-agents-envs/mlagents/envs/communicator_objects/header_pb2.py
  41. 4
      ml-agents-envs/mlagents/envs/communicator_objects/header_pb2.pyi
  42. 28
      ml-agents-envs/mlagents/envs/communicator_objects/unity_input_pb2.py
  43. 16
      ml-agents-envs/mlagents/envs/communicator_objects/unity_input_pb2.pyi
  44. 32
      ml-agents-envs/mlagents/envs/communicator_objects/unity_message_pb2.py
  45. 22
      ml-agents-envs/mlagents/envs/communicator_objects/unity_message_pb2.pyi
  46. 28
      ml-agents-envs/mlagents/envs/communicator_objects/unity_output_pb2.py
  47. 16
      ml-agents-envs/mlagents/envs/communicator_objects/unity_output_pb2.pyi
  48. 22
      ml-agents-envs/mlagents/envs/communicator_objects/unity_rl_initialization_input_pb2.py
  49. 4
      ml-agents-envs/mlagents/envs/communicator_objects/unity_rl_initialization_input_pb2.pyi
  50. 42
      ml-agents-envs/mlagents/envs/communicator_objects/unity_rl_initialization_output_pb2.py
  51. 20
      ml-agents-envs/mlagents/envs/communicator_objects/unity_rl_initialization_output_pb2.pyi
  52. 92
      ml-agents-envs/mlagents/envs/communicator_objects/unity_rl_input_pb2.py
  53. 40
      ml-agents-envs/mlagents/envs/communicator_objects/unity_rl_input_pb2.pyi
  54. 78
      ml-agents-envs/mlagents/envs/communicator_objects/unity_rl_output_pb2.py
  55. 24
      ml-agents-envs/mlagents/envs/communicator_objects/unity_rl_output_pb2.pyi
  56. 20
      ml-agents-envs/mlagents/envs/communicator_objects/unity_to_external_pb2.py
  57. 18
      ml-agents-envs/mlagents/envs/communicator_objects/unity_to_external_pb2_grpc.py
  58. 14
      ml-agents-envs/mlagents/envs/communicator_objects/agent_action_pb2.py
  59. 6
      ml-agents-envs/mlagents/envs/communicator_objects/agent_action_pb2.pyi
  60. 14
      ml-agents-envs/mlagents/envs/communicator_objects/agent_info_pb2.py
  61. 6
      ml-agents-envs/mlagents/envs/communicator_objects/agent_info_pb2.pyi
  62. 22
      ml-agents-envs/mlagents/envs/communicator_objects/brain_parameters_pb2.py
  63. 10
      ml-agents-envs/mlagents/envs/communicator_objects/command_pb2.py
  64. 12
      ml-agents-envs/mlagents/envs/communicator_objects/demonstration_meta_pb2.py
  65. 12
      ml-agents-envs/mlagents/envs/communicator_objects/engine_configuration_pb2.py
  66. 20
      ml-agents-envs/mlagents/envs/communicator_objects/environment_parameters_pb2.py
  67. 6
      ml-agents-envs/mlagents/envs/communicator_objects/environment_parameters_pb2.pyi
  68. 12
      ml-agents-envs/mlagents/envs/communicator_objects/resolution_pb2.py
  69. 42
      ml-agents-envs/mlagents/envs/environment.py
  70. 30
      ml-agents-envs/mlagents/envs/mock_communicator.py
  71. 26
      ml-agents-envs/mlagents/envs/rpc_communicator.py
  72. 20
      ml-agents-envs/mlagents/envs/socket_communicator.py
  73. 8
      ml-agents/mlagents/trainers/demo_loader.py
  74. 2
      ml-agents/mlagents/trainers/tests/test_simple_rl.py
  75. 2
      protobuf-definitions/proto/mlagents/envs/communicator_objects/custom_action.proto
  76. 2
      protobuf-definitions/proto/mlagents/envs/communicator_objects/custom_observation.proto
  77. 2
      protobuf-definitions/proto/mlagents/envs/communicator_objects/custom_reset_parameters.proto
  78. 2
      protobuf-definitions/proto/mlagents/envs/communicator_objects/header.proto
  79. 6
      protobuf-definitions/proto/mlagents/envs/communicator_objects/unity_input.proto
  80. 8
      protobuf-definitions/proto/mlagents/envs/communicator_objects/unity_message.proto
  81. 6
      protobuf-definitions/proto/mlagents/envs/communicator_objects/unity_output.proto
  82. 2
      protobuf-definitions/proto/mlagents/envs/communicator_objects/unity_rl_initialization_input.proto
  83. 6
      protobuf-definitions/proto/mlagents/envs/communicator_objects/unity_rl_initialization_output.proto
  84. 8
      protobuf-definitions/proto/mlagents/envs/communicator_objects/unity_rl_input.proto
  85. 4
      protobuf-definitions/proto/mlagents/envs/communicator_objects/unity_rl_output.proto
  86. 4
      protobuf-definitions/proto/mlagents/envs/communicator_objects/unity_to_external.proto
  87. 2
      protobuf-definitions/proto/mlagents/envs/communicator_objects/agent_action.proto
  88. 2
      protobuf-definitions/proto/mlagents/envs/communicator_objects/agent_info.proto
  89. 2
      protobuf-definitions/proto/mlagents/envs/communicator_objects/environment_parameters.proto
  90. 2
      protobuf-definitions/proto/mlagents/envs/communicator_objects/space_type.proto
  91. 282
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/AgentAction.cs
  92. 356
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/BrainParameters.cs
  93. 49
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/Command.cs
  94. 207
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/EnvironmentParameters.cs
  95. 49
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/SpaceType.cs
  96. 66
      ml-agents-envs/mlagents/envs/communicator_objects/brain_parameters_pb2.pyi
  97. 61
      ml-agents-envs/mlagents/envs/communicator_objects/space_type_pb2.py
  98. 18
      protobuf-definitions/proto/mlagents/envs/communicator_objects/brain_parameters.proto
  99. 50
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/SpaceTypeProto.cs
  100. 49
      UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/CommandProto.cs

4
UnitySDK/Assets/ML-Agents/Scripts/Academy.cs


[Tooltip("List of custom parameters that can be changed in the " +
"environment when it resets.")]
public ResetParameters resetParameters;
public CommunicatorObjects.CustomResetParameters customResetParameters;
public CommunicatorObjects.CustomResetParametersProto customResetParameters;
// Fields not provided in the Inspector.

m_IsCommunicatorOn = true;
var academyParameters =
new CommunicatorObjects.UnityRLInitializationOutput();
new CommunicatorObjects.UnityRLInitializationOutputProto();
academyParameters.Name = gameObject.name;
academyParameters.Version = k_KApiVersion;
foreach (var brain in exposedBrains)

10
UnitySDK/Assets/ML-Agents/Scripts/Agent.cs


/// User-customizable object for sending structured output from Unity to Python in response
/// to an action in addition to a scalar reward.
/// </summary>
public CustomObservation customObservation;
public CustomObservationProto customObservation;
/// <summary>
/// Remove the visual observations from memory. Call at each timestep

public string textActions;
public List<float> memories;
public float value;
public CustomAction customAction;
public CustomActionProto customAction;
}
/// <summary>

/// A custom action, defined by the user as custom protobuf message. Useful if the action is hard to encode
/// as either a flat vector or a single string.
/// </param>
public virtual void AgentAction(float[] vectorAction, string textAction, CustomAction customAction)
public virtual void AgentAction(float[] vectorAction, string textAction, CustomActionProto customAction)
{
// We fall back to not using the custom action if the subclassed Agent doesn't override this method.
AgentAction(vectorAction, textAction);

/// Updates the custom action.
/// </summary>
/// <param name="customAction">Custom action.</param>
public void UpdateCustomAction(CustomAction customAction)
public void UpdateCustomAction(CustomActionProto customAction)
{
m_Action.customAction = customAction;
}

/// Sets the custom observation for the agent for this episode.
/// </summary>
/// <param name="customObservation">New value of the agent's custom observation.</param>
public void SetCustomObservation(CustomObservation customObservation)
public void SetCustomObservation(CustomObservationProto customObservation)
{
m_Info.customObservation = customObservation;
}

20
UnitySDK/Assets/ML-Agents/Scripts/Batcher.cs


ICommunicator m_Communicator;
/// The current UnityRLOutput to be sent when all the brains queried the batcher
CommunicatorObjects.UnityRLOutput m_CurrentUnityRlOutput =
new CommunicatorObjects.UnityRLOutput();
CommunicatorObjects.UnityRLOutputProto m_CurrentUnityRlOutput =
new CommunicatorObjects.UnityRLOutputProto();
/// Keeps track of last CommandProto sent by External
CommunicatorObjects.CommandProto m_Command;

/// </summary>
/// <returns>The External Initialization Parameters received.</returns>
/// <param name="academyParameters">The Unity Initialization Parameters to be sent.</param>
public CommunicatorObjects.UnityRLInitializationInput SendAcademyParameters(
CommunicatorObjects.UnityRLInitializationOutput academyParameters)
public CommunicatorObjects.UnityRLInitializationInputProto SendAcademyParameters(
CommunicatorObjects.UnityRLInitializationOutputProto academyParameters)
CommunicatorObjects.UnityInput input;
var initializationInput = new CommunicatorObjects.UnityInput();
CommunicatorObjects.UnityInputProto input;
var initializationInput = new CommunicatorObjects.UnityInputProto();
new CommunicatorObjects.UnityOutput
new CommunicatorObjects.UnityOutputProto
{
RlInitializationOutput = academyParameters
},

m_CurrentAgents[brainKey] = new List<Agent>(k_NumAgents);
m_CurrentUnityRlOutput.AgentInfos.Add(
brainKey,
new CommunicatorObjects.UnityRLOutput.Types.ListAgentInfoProto());
new CommunicatorObjects.UnityRLOutputProto.Types.ListAgentInfoProto());
}
/// <summary>

void SendBatchedMessageHelper()
{
var input = m_Communicator.Exchange(
new CommunicatorObjects.UnityOutput
new CommunicatorObjects.UnityOutputProto
foreach (var k in m_CurrentUnityRlOutput.AgentInfos.Keys)
{

27
UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/CustomAction.cs


byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CjZtbGFnZW50cy9lbnZzL2NvbW11bmljYXRvcl9vYmplY3RzL2N1c3RvbV9h",
"Y3Rpb24ucHJvdG8SFGNvbW11bmljYXRvcl9vYmplY3RzIg4KDEN1c3RvbUFj",
"dGlvbkIfqgIcTUxBZ2VudHMuQ29tbXVuaWNhdG9yT2JqZWN0c2IGcHJvdG8z"));
"Y3Rpb24ucHJvdG8SFGNvbW11bmljYXRvcl9vYmplY3RzIhMKEUN1c3RvbUFj",
"dGlvblByb3RvQh+qAhxNTEFnZW50cy5Db21tdW5pY2F0b3JPYmplY3RzYgZw",
"cm90bzM="));
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.CustomAction), global::MLAgents.CommunicatorObjects.CustomAction.Parser, null, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.CustomActionProto), global::MLAgents.CommunicatorObjects.CustomActionProto.Parser, null, null, null, null)
}));
}
#endregion

public sealed partial class CustomAction : pb::IMessage<CustomAction> {
private static readonly pb::MessageParser<CustomAction> _parser = new pb::MessageParser<CustomAction>(() => new CustomAction());
public sealed partial class CustomActionProto : pb::IMessage<CustomActionProto> {
private static readonly pb::MessageParser<CustomActionProto> _parser = new pb::MessageParser<CustomActionProto>(() => new CustomActionProto());
public static pb::MessageParser<CustomAction> Parser { get { return _parser; } }
public static pb::MessageParser<CustomActionProto> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public CustomAction() {
public CustomActionProto() {
OnConstruction();
}

public CustomAction(CustomAction other) : this() {
public CustomActionProto(CustomActionProto other) : this() {
public CustomAction Clone() {
return new CustomAction(this);
public CustomActionProto Clone() {
return new CustomActionProto(this);
return Equals(other as CustomAction);
return Equals(other as CustomActionProto);
public bool Equals(CustomAction other) {
public bool Equals(CustomActionProto other) {
if (ReferenceEquals(other, null)) {
return false;
}

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(CustomAction other) {
public void MergeFrom(CustomActionProto other) {
if (other == null) {
return;
}

28
UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/CustomObservation.cs


byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CjttbGFnZW50cy9lbnZzL2NvbW11bmljYXRvcl9vYmplY3RzL2N1c3RvbV9v",
"YnNlcnZhdGlvbi5wcm90bxIUY29tbXVuaWNhdG9yX29iamVjdHMiEwoRQ3Vz",
"dG9tT2JzZXJ2YXRpb25CH6oCHE1MQWdlbnRzLkNvbW11bmljYXRvck9iamVj",
"dHNiBnByb3RvMw=="));
"YnNlcnZhdGlvbi5wcm90bxIUY29tbXVuaWNhdG9yX29iamVjdHMiGAoWQ3Vz",
"dG9tT2JzZXJ2YXRpb25Qcm90b0IfqgIcTUxBZ2VudHMuQ29tbXVuaWNhdG9y",
"T2JqZWN0c2IGcHJvdG8z"));
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.CustomObservation), global::MLAgents.CommunicatorObjects.CustomObservation.Parser, null, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.CustomObservationProto), global::MLAgents.CommunicatorObjects.CustomObservationProto.Parser, null, null, null, null)
}));
}
#endregion

public sealed partial class CustomObservation : pb::IMessage<CustomObservation> {
private static readonly pb::MessageParser<CustomObservation> _parser = new pb::MessageParser<CustomObservation>(() => new CustomObservation());
public sealed partial class CustomObservationProto : pb::IMessage<CustomObservationProto> {
private static readonly pb::MessageParser<CustomObservationProto> _parser = new pb::MessageParser<CustomObservationProto>(() => new CustomObservationProto());
public static pb::MessageParser<CustomObservation> Parser { get { return _parser; } }
public static pb::MessageParser<CustomObservationProto> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public CustomObservation() {
public CustomObservationProto() {
OnConstruction();
}

public CustomObservation(CustomObservation other) : this() {
public CustomObservationProto(CustomObservationProto other) : this() {
public CustomObservation Clone() {
return new CustomObservation(this);
public CustomObservationProto Clone() {
return new CustomObservationProto(this);
return Equals(other as CustomObservation);
return Equals(other as CustomObservationProto);
public bool Equals(CustomObservation other) {
public bool Equals(CustomObservationProto other) {
if (ReferenceEquals(other, null)) {
return false;
}

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(CustomObservation other) {
public void MergeFrom(CustomObservationProto other) {
if (other == null) {
return;
}

28
UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/CustomResetParameters.cs


byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CkBtbGFnZW50cy9lbnZzL2NvbW11bmljYXRvcl9vYmplY3RzL2N1c3RvbV9y",
"ZXNldF9wYXJhbWV0ZXJzLnByb3RvEhRjb21tdW5pY2F0b3Jfb2JqZWN0cyIX",
"ChVDdXN0b21SZXNldFBhcmFtZXRlcnNCH6oCHE1MQWdlbnRzLkNvbW11bmlj",
"YXRvck9iamVjdHNiBnByb3RvMw=="));
"ZXNldF9wYXJhbWV0ZXJzLnByb3RvEhRjb21tdW5pY2F0b3Jfb2JqZWN0cyIc",
"ChpDdXN0b21SZXNldFBhcmFtZXRlcnNQcm90b0IfqgIcTUxBZ2VudHMuQ29t",
"bXVuaWNhdG9yT2JqZWN0c2IGcHJvdG8z"));
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.CustomResetParameters), global::MLAgents.CommunicatorObjects.CustomResetParameters.Parser, null, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.CustomResetParametersProto), global::MLAgents.CommunicatorObjects.CustomResetParametersProto.Parser, null, null, null, null)
}));
}
#endregion

public sealed partial class CustomResetParameters : pb::IMessage<CustomResetParameters> {
private static readonly pb::MessageParser<CustomResetParameters> _parser = new pb::MessageParser<CustomResetParameters>(() => new CustomResetParameters());
public sealed partial class CustomResetParametersProto : pb::IMessage<CustomResetParametersProto> {
private static readonly pb::MessageParser<CustomResetParametersProto> _parser = new pb::MessageParser<CustomResetParametersProto>(() => new CustomResetParametersProto());
public static pb::MessageParser<CustomResetParameters> Parser { get { return _parser; } }
public static pb::MessageParser<CustomResetParametersProto> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public CustomResetParameters() {
public CustomResetParametersProto() {
OnConstruction();
}

public CustomResetParameters(CustomResetParameters other) : this() {
public CustomResetParametersProto(CustomResetParametersProto other) : this() {
public CustomResetParameters Clone() {
return new CustomResetParameters(this);
public CustomResetParametersProto Clone() {
return new CustomResetParametersProto(this);
return Equals(other as CustomResetParameters);
return Equals(other as CustomResetParametersProto);
public bool Equals(CustomResetParameters other) {
public bool Equals(CustomResetParametersProto other) {
if (ReferenceEquals(other, null)) {
return false;
}

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(CustomResetParameters other) {
public void MergeFrom(CustomResetParametersProto other) {
if (other == null) {
return;
}

28
UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/Header.cs


byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"Ci9tbGFnZW50cy9lbnZzL2NvbW11bmljYXRvcl9vYmplY3RzL2hlYWRlci5w",
"cm90bxIUY29tbXVuaWNhdG9yX29iamVjdHMiKQoGSGVhZGVyEg4KBnN0YXR1",
"cxgBIAEoBRIPCgdtZXNzYWdlGAIgASgJQh+qAhxNTEFnZW50cy5Db21tdW5p",
"Y2F0b3JPYmplY3RzYgZwcm90bzM="));
"cm90bxIUY29tbXVuaWNhdG9yX29iamVjdHMiLgoLSGVhZGVyUHJvdG8SDgoG",
"c3RhdHVzGAEgASgFEg8KB21lc3NhZ2UYAiABKAlCH6oCHE1MQWdlbnRzLkNv",
"bW11bmljYXRvck9iamVjdHNiBnByb3RvMw=="));
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.Header), global::MLAgents.CommunicatorObjects.Header.Parser, new[]{ "Status", "Message" }, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.HeaderProto), global::MLAgents.CommunicatorObjects.HeaderProto.Parser, new[]{ "Status", "Message" }, null, null, null)
}));
}
#endregion

public sealed partial class Header : pb::IMessage<Header> {
private static readonly pb::MessageParser<Header> _parser = new pb::MessageParser<Header>(() => new Header());
public sealed partial class HeaderProto : pb::IMessage<HeaderProto> {
private static readonly pb::MessageParser<HeaderProto> _parser = new pb::MessageParser<HeaderProto>(() => new HeaderProto());
public static pb::MessageParser<Header> Parser { get { return _parser; } }
public static pb::MessageParser<HeaderProto> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public Header() {
public HeaderProto() {
OnConstruction();
}

public Header(Header other) : this() {
public HeaderProto(HeaderProto other) : this() {
status_ = other.status_;
message_ = other.message_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);

public Header Clone() {
return new Header(this);
public HeaderProto Clone() {
return new HeaderProto(this);
}
/// <summary>Field number for the "status" field.</summary>

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as Header);
return Equals(other as HeaderProto);
public bool Equals(Header other) {
public bool Equals(HeaderProto other) {
if (ReferenceEquals(other, null)) {
return false;
}

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(Header other) {
public void MergeFrom(HeaderProto other) {
if (other == null) {
return;
}

49
UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityInput.cs


"cHV0LnByb3RvEhRjb21tdW5pY2F0b3Jfb2JqZWN0cxo3bWxhZ2VudHMvZW52",
"cy9jb21tdW5pY2F0b3Jfb2JqZWN0cy91bml0eV9ybF9pbnB1dC5wcm90bxpG",
"bWxhZ2VudHMvZW52cy9jb21tdW5pY2F0b3Jfb2JqZWN0cy91bml0eV9ybF9p",
"bml0aWFsaXphdGlvbl9pbnB1dC5wcm90byKVAQoKVW5pdHlJbnB1dBI0Cghy",
"bF9pbnB1dBgBIAEoCzIiLmNvbW11bmljYXRvcl9vYmplY3RzLlVuaXR5UkxJ",
"bnB1dBJRChdybF9pbml0aWFsaXphdGlvbl9pbnB1dBgCIAEoCzIwLmNvbW11",
"bmljYXRvcl9vYmplY3RzLlVuaXR5UkxJbml0aWFsaXphdGlvbklucHV0Qh+q",
"AhxNTEFnZW50cy5Db21tdW5pY2F0b3JPYmplY3RzYgZwcm90bzM="));
"bml0aWFsaXphdGlvbl9pbnB1dC5wcm90byKkAQoPVW5pdHlJbnB1dFByb3Rv",
"EjkKCHJsX2lucHV0GAEgASgLMicuY29tbXVuaWNhdG9yX29iamVjdHMuVW5p",
"dHlSTElucHV0UHJvdG8SVgoXcmxfaW5pdGlhbGl6YXRpb25faW5wdXQYAiAB",
"KAsyNS5jb21tdW5pY2F0b3Jfb2JqZWN0cy5Vbml0eVJMSW5pdGlhbGl6YXRp",
"b25JbnB1dFByb3RvQh+qAhxNTEFnZW50cy5Db21tdW5pY2F0b3JPYmplY3Rz",
"YgZwcm90bzM="));
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityInput), global::MLAgents.CommunicatorObjects.UnityInput.Parser, new[]{ "RlInput", "RlInitializationInput" }, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityInputProto), global::MLAgents.CommunicatorObjects.UnityInputProto.Parser, new[]{ "RlInput", "RlInitializationInput" }, null, null, null)
}));
}
#endregion

public sealed partial class UnityInput : pb::IMessage<UnityInput> {
private static readonly pb::MessageParser<UnityInput> _parser = new pb::MessageParser<UnityInput>(() => new UnityInput());
public sealed partial class UnityInputProto : pb::IMessage<UnityInputProto> {
private static readonly pb::MessageParser<UnityInputProto> _parser = new pb::MessageParser<UnityInputProto>(() => new UnityInputProto());
public static pb::MessageParser<UnityInput> Parser { get { return _parser; } }
public static pb::MessageParser<UnityInputProto> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public UnityInput() {
public UnityInputProto() {
OnConstruction();
}

public UnityInput(UnityInput other) : this() {
public UnityInputProto(UnityInputProto other) : this() {
RlInput = other.rlInput_ != null ? other.RlInput.Clone() : null;
RlInitializationInput = other.rlInitializationInput_ != null ? other.RlInitializationInput.Clone() : null;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);

public UnityInput Clone() {
return new UnityInput(this);
public UnityInputProto Clone() {
return new UnityInputProto(this);
private global::MLAgents.CommunicatorObjects.UnityRLInput rlInput_;
private global::MLAgents.CommunicatorObjects.UnityRLInputProto rlInput_;
public global::MLAgents.CommunicatorObjects.UnityRLInput RlInput {
public global::MLAgents.CommunicatorObjects.UnityRLInputProto RlInput {
get { return rlInput_; }
set {
rlInput_ = value;

/// <summary>Field number for the "rl_initialization_input" field.</summary>
public const int RlInitializationInputFieldNumber = 2;
private global::MLAgents.CommunicatorObjects.UnityRLInitializationInput rlInitializationInput_;
private global::MLAgents.CommunicatorObjects.UnityRLInitializationInputProto rlInitializationInput_;
public global::MLAgents.CommunicatorObjects.UnityRLInitializationInput RlInitializationInput {
public global::MLAgents.CommunicatorObjects.UnityRLInitializationInputProto RlInitializationInput {
get { return rlInitializationInput_; }
set {
rlInitializationInput_ = value;

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as UnityInput);
return Equals(other as UnityInputProto);
public bool Equals(UnityInput other) {
public bool Equals(UnityInputProto other) {
if (ReferenceEquals(other, null)) {
return false;
}

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(UnityInput other) {
public void MergeFrom(UnityInputProto other) {
rlInput_ = new global::MLAgents.CommunicatorObjects.UnityRLInput();
rlInput_ = new global::MLAgents.CommunicatorObjects.UnityRLInputProto();
rlInitializationInput_ = new global::MLAgents.CommunicatorObjects.UnityRLInitializationInput();
rlInitializationInput_ = new global::MLAgents.CommunicatorObjects.UnityRLInitializationInputProto();
}
RlInitializationInput.MergeFrom(other.RlInitializationInput);
}

break;
case 10: {
if (rlInput_ == null) {
rlInput_ = new global::MLAgents.CommunicatorObjects.UnityRLInput();
rlInput_ = new global::MLAgents.CommunicatorObjects.UnityRLInputProto();
}
input.ReadMessage(rlInput_);
break;

rlInitializationInput_ = new global::MLAgents.CommunicatorObjects.UnityRLInitializationInput();
rlInitializationInput_ = new global::MLAgents.CommunicatorObjects.UnityRLInitializationInputProto();
}
input.ReadMessage(rlInitializationInput_);
break;

58
UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityMessage.cs


"bnZzL2NvbW11bmljYXRvcl9vYmplY3RzL3VuaXR5X291dHB1dC5wcm90bxo0",
"bWxhZ2VudHMvZW52cy9jb21tdW5pY2F0b3Jfb2JqZWN0cy91bml0eV9pbnB1",
"dC5wcm90bxovbWxhZ2VudHMvZW52cy9jb21tdW5pY2F0b3Jfb2JqZWN0cy9o",
"ZWFkZXIucHJvdG8irAEKDFVuaXR5TWVzc2FnZRIsCgZoZWFkZXIYASABKAsy",
"HC5jb21tdW5pY2F0b3Jfb2JqZWN0cy5IZWFkZXISNwoMdW5pdHlfb3V0cHV0",
"GAIgASgLMiEuY29tbXVuaWNhdG9yX29iamVjdHMuVW5pdHlPdXRwdXQSNQoL",
"dW5pdHlfaW5wdXQYAyABKAsyIC5jb21tdW5pY2F0b3Jfb2JqZWN0cy5Vbml0",
"eUlucHV0Qh+qAhxNTEFnZW50cy5Db21tdW5pY2F0b3JPYmplY3RzYgZwcm90",
"bzM="));
"ZWFkZXIucHJvdG8iwAEKEVVuaXR5TWVzc2FnZVByb3RvEjEKBmhlYWRlchgB",
"IAEoCzIhLmNvbW11bmljYXRvcl9vYmplY3RzLkhlYWRlclByb3RvEjwKDHVu",
"aXR5X291dHB1dBgCIAEoCzImLmNvbW11bmljYXRvcl9vYmplY3RzLlVuaXR5",
"T3V0cHV0UHJvdG8SOgoLdW5pdHlfaW5wdXQYAyABKAsyJS5jb21tdW5pY2F0",
"b3Jfb2JqZWN0cy5Vbml0eUlucHV0UHJvdG9CH6oCHE1MQWdlbnRzLkNvbW11",
"bmljYXRvck9iamVjdHNiBnByb3RvMw=="));
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityMessage), global::MLAgents.CommunicatorObjects.UnityMessage.Parser, new[]{ "Header", "UnityOutput", "UnityInput" }, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityMessageProto), global::MLAgents.CommunicatorObjects.UnityMessageProto.Parser, new[]{ "Header", "UnityOutput", "UnityInput" }, null, null, null)
}));
}
#endregion

public sealed partial class UnityMessage : pb::IMessage<UnityMessage> {
private static readonly pb::MessageParser<UnityMessage> _parser = new pb::MessageParser<UnityMessage>(() => new UnityMessage());
public sealed partial class UnityMessageProto : pb::IMessage<UnityMessageProto> {
private static readonly pb::MessageParser<UnityMessageProto> _parser = new pb::MessageParser<UnityMessageProto>(() => new UnityMessageProto());
public static pb::MessageParser<UnityMessage> Parser { get { return _parser; } }
public static pb::MessageParser<UnityMessageProto> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public UnityMessage() {
public UnityMessageProto() {
OnConstruction();
}

public UnityMessage(UnityMessage other) : this() {
public UnityMessageProto(UnityMessageProto other) : this() {
Header = other.header_ != null ? other.Header.Clone() : null;
UnityOutput = other.unityOutput_ != null ? other.UnityOutput.Clone() : null;
UnityInput = other.unityInput_ != null ? other.UnityInput.Clone() : null;

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public UnityMessage Clone() {
return new UnityMessage(this);
public UnityMessageProto Clone() {
return new UnityMessageProto(this);
private global::MLAgents.CommunicatorObjects.Header header_;
private global::MLAgents.CommunicatorObjects.HeaderProto header_;
public global::MLAgents.CommunicatorObjects.Header Header {
public global::MLAgents.CommunicatorObjects.HeaderProto Header {
get { return header_; }
set {
header_ = value;

/// <summary>Field number for the "unity_output" field.</summary>
public const int UnityOutputFieldNumber = 2;
private global::MLAgents.CommunicatorObjects.UnityOutput unityOutput_;
private global::MLAgents.CommunicatorObjects.UnityOutputProto unityOutput_;
public global::MLAgents.CommunicatorObjects.UnityOutput UnityOutput {
public global::MLAgents.CommunicatorObjects.UnityOutputProto UnityOutput {
get { return unityOutput_; }
set {
unityOutput_ = value;

/// <summary>Field number for the "unity_input" field.</summary>
public const int UnityInputFieldNumber = 3;
private global::MLAgents.CommunicatorObjects.UnityInput unityInput_;
private global::MLAgents.CommunicatorObjects.UnityInputProto unityInput_;
public global::MLAgents.CommunicatorObjects.UnityInput UnityInput {
public global::MLAgents.CommunicatorObjects.UnityInputProto UnityInput {
get { return unityInput_; }
set {
unityInput_ = value;

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as UnityMessage);
return Equals(other as UnityMessageProto);
public bool Equals(UnityMessage other) {
public bool Equals(UnityMessageProto other) {
if (ReferenceEquals(other, null)) {
return false;
}

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(UnityMessage other) {
public void MergeFrom(UnityMessageProto other) {
header_ = new global::MLAgents.CommunicatorObjects.Header();
header_ = new global::MLAgents.CommunicatorObjects.HeaderProto();
unityOutput_ = new global::MLAgents.CommunicatorObjects.UnityOutput();
unityOutput_ = new global::MLAgents.CommunicatorObjects.UnityOutputProto();
unityInput_ = new global::MLAgents.CommunicatorObjects.UnityInput();
unityInput_ = new global::MLAgents.CommunicatorObjects.UnityInputProto();
}
UnityInput.MergeFrom(other.UnityInput);
}

break;
case 10: {
if (header_ == null) {
header_ = new global::MLAgents.CommunicatorObjects.Header();
header_ = new global::MLAgents.CommunicatorObjects.HeaderProto();
}
input.ReadMessage(header_);
break;

unityOutput_ = new global::MLAgents.CommunicatorObjects.UnityOutput();
unityOutput_ = new global::MLAgents.CommunicatorObjects.UnityOutputProto();
}
input.ReadMessage(unityOutput_);
break;

unityInput_ = new global::MLAgents.CommunicatorObjects.UnityInput();
unityInput_ = new global::MLAgents.CommunicatorObjects.UnityInputProto();
}
input.ReadMessage(unityInput_);
break;

50
UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityOutput.cs


"dHB1dC5wcm90bxIUY29tbXVuaWNhdG9yX29iamVjdHMaOG1sYWdlbnRzL2Vu",
"dnMvY29tbXVuaWNhdG9yX29iamVjdHMvdW5pdHlfcmxfb3V0cHV0LnByb3Rv",
"GkdtbGFnZW50cy9lbnZzL2NvbW11bmljYXRvcl9vYmplY3RzL3VuaXR5X3Js",
"X2luaXRpYWxpemF0aW9uX291dHB1dC5wcm90byKaAQoLVW5pdHlPdXRwdXQS",
"NgoJcmxfb3V0cHV0GAEgASgLMiMuY29tbXVuaWNhdG9yX29iamVjdHMuVW5p",
"dHlSTE91dHB1dBJTChhybF9pbml0aWFsaXphdGlvbl9vdXRwdXQYAiABKAsy",
"MS5jb21tdW5pY2F0b3Jfb2JqZWN0cy5Vbml0eVJMSW5pdGlhbGl6YXRpb25P",
"dXRwdXRCH6oCHE1MQWdlbnRzLkNvbW11bmljYXRvck9iamVjdHNiBnByb3Rv",
"Mw=="));
"X2luaXRpYWxpemF0aW9uX291dHB1dC5wcm90byKpAQoQVW5pdHlPdXRwdXRQ",
"cm90bxI7CglybF9vdXRwdXQYASABKAsyKC5jb21tdW5pY2F0b3Jfb2JqZWN0",
"cy5Vbml0eVJMT3V0cHV0UHJvdG8SWAoYcmxfaW5pdGlhbGl6YXRpb25fb3V0",
"cHV0GAIgASgLMjYuY29tbXVuaWNhdG9yX29iamVjdHMuVW5pdHlSTEluaXRp",
"YWxpemF0aW9uT3V0cHV0UHJvdG9CH6oCHE1MQWdlbnRzLkNvbW11bmljYXRv",
"ck9iamVjdHNiBnByb3RvMw=="));
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityOutput), global::MLAgents.CommunicatorObjects.UnityOutput.Parser, new[]{ "RlOutput", "RlInitializationOutput" }, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityOutputProto), global::MLAgents.CommunicatorObjects.UnityOutputProto.Parser, new[]{ "RlOutput", "RlInitializationOutput" }, null, null, null)
}));
}
#endregion

public sealed partial class UnityOutput : pb::IMessage<UnityOutput> {
private static readonly pb::MessageParser<UnityOutput> _parser = new pb::MessageParser<UnityOutput>(() => new UnityOutput());
public sealed partial class UnityOutputProto : pb::IMessage<UnityOutputProto> {
private static readonly pb::MessageParser<UnityOutputProto> _parser = new pb::MessageParser<UnityOutputProto>(() => new UnityOutputProto());
public static pb::MessageParser<UnityOutput> Parser { get { return _parser; } }
public static pb::MessageParser<UnityOutputProto> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public UnityOutput() {
public UnityOutputProto() {
OnConstruction();
}

public UnityOutput(UnityOutput other) : this() {
public UnityOutputProto(UnityOutputProto other) : this() {
RlOutput = other.rlOutput_ != null ? other.RlOutput.Clone() : null;
RlInitializationOutput = other.rlInitializationOutput_ != null ? other.RlInitializationOutput.Clone() : null;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);

public UnityOutput Clone() {
return new UnityOutput(this);
public UnityOutputProto Clone() {
return new UnityOutputProto(this);
private global::MLAgents.CommunicatorObjects.UnityRLOutput rlOutput_;
private global::MLAgents.CommunicatorObjects.UnityRLOutputProto rlOutput_;
public global::MLAgents.CommunicatorObjects.UnityRLOutput RlOutput {
public global::MLAgents.CommunicatorObjects.UnityRLOutputProto RlOutput {
get { return rlOutput_; }
set {
rlOutput_ = value;

/// <summary>Field number for the "rl_initialization_output" field.</summary>
public const int RlInitializationOutputFieldNumber = 2;
private global::MLAgents.CommunicatorObjects.UnityRLInitializationOutput rlInitializationOutput_;
private global::MLAgents.CommunicatorObjects.UnityRLInitializationOutputProto rlInitializationOutput_;
public global::MLAgents.CommunicatorObjects.UnityRLInitializationOutput RlInitializationOutput {
public global::MLAgents.CommunicatorObjects.UnityRLInitializationOutputProto RlInitializationOutput {
get { return rlInitializationOutput_; }
set {
rlInitializationOutput_ = value;

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as UnityOutput);
return Equals(other as UnityOutputProto);
public bool Equals(UnityOutput other) {
public bool Equals(UnityOutputProto other) {
if (ReferenceEquals(other, null)) {
return false;
}

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(UnityOutput other) {
public void MergeFrom(UnityOutputProto other) {
rlOutput_ = new global::MLAgents.CommunicatorObjects.UnityRLOutput();
rlOutput_ = new global::MLAgents.CommunicatorObjects.UnityRLOutputProto();
rlInitializationOutput_ = new global::MLAgents.CommunicatorObjects.UnityRLInitializationOutput();
rlInitializationOutput_ = new global::MLAgents.CommunicatorObjects.UnityRLInitializationOutputProto();
}
RlInitializationOutput.MergeFrom(other.RlInitializationOutput);
}

break;
case 10: {
if (rlOutput_ == null) {
rlOutput_ = new global::MLAgents.CommunicatorObjects.UnityRLOutput();
rlOutput_ = new global::MLAgents.CommunicatorObjects.UnityRLOutputProto();
}
input.ReadMessage(rlOutput_);
break;

rlInitializationOutput_ = new global::MLAgents.CommunicatorObjects.UnityRLInitializationOutput();
rlInitializationOutput_ = new global::MLAgents.CommunicatorObjects.UnityRLInitializationOutputProto();
}
input.ReadMessage(rlInitializationOutput_);
break;

27
UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityRlInitializationInput.cs


string.Concat(
"CkZtbGFnZW50cy9lbnZzL2NvbW11bmljYXRvcl9vYmplY3RzL3VuaXR5X3Js",
"X2luaXRpYWxpemF0aW9uX2lucHV0LnByb3RvEhRjb21tdW5pY2F0b3Jfb2Jq",
"ZWN0cyIqChpVbml0eVJMSW5pdGlhbGl6YXRpb25JbnB1dBIMCgRzZWVkGAEg",
"ASgFQh+qAhxNTEFnZW50cy5Db21tdW5pY2F0b3JPYmplY3RzYgZwcm90bzM="));
"ZWN0cyIvCh9Vbml0eVJMSW5pdGlhbGl6YXRpb25JbnB1dFByb3RvEgwKBHNl",
"ZWQYASABKAVCH6oCHE1MQWdlbnRzLkNvbW11bmljYXRvck9iamVjdHNiBnBy",
"b3RvMw=="));
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityRLInitializationInput), global::MLAgents.CommunicatorObjects.UnityRLInitializationInput.Parser, new[]{ "Seed" }, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityRLInitializationInputProto), global::MLAgents.CommunicatorObjects.UnityRLInitializationInputProto.Parser, new[]{ "Seed" }, null, null, null)
}));
}
#endregion

public sealed partial class UnityRLInitializationInput : pb::IMessage<UnityRLInitializationInput> {
private static readonly pb::MessageParser<UnityRLInitializationInput> _parser = new pb::MessageParser<UnityRLInitializationInput>(() => new UnityRLInitializationInput());
public sealed partial class UnityRLInitializationInputProto : pb::IMessage<UnityRLInitializationInputProto> {
private static readonly pb::MessageParser<UnityRLInitializationInputProto> _parser = new pb::MessageParser<UnityRLInitializationInputProto>(() => new UnityRLInitializationInputProto());
public static pb::MessageParser<UnityRLInitializationInput> Parser { get { return _parser; } }
public static pb::MessageParser<UnityRLInitializationInputProto> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public UnityRLInitializationInput() {
public UnityRLInitializationInputProto() {
OnConstruction();
}

public UnityRLInitializationInput(UnityRLInitializationInput other) : this() {
public UnityRLInitializationInputProto(UnityRLInitializationInputProto other) : this() {
public UnityRLInitializationInput Clone() {
return new UnityRLInitializationInput(this);
public UnityRLInitializationInputProto Clone() {
return new UnityRLInitializationInputProto(this);
}
/// <summary>Field number for the "seed" field.</summary>

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as UnityRLInitializationInput);
return Equals(other as UnityRLInitializationInputProto);
public bool Equals(UnityRLInitializationInput other) {
public bool Equals(UnityRLInitializationInputProto other) {
if (ReferenceEquals(other, null)) {
return false;
}

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(UnityRLInitializationInput other) {
public void MergeFrom(UnityRLInitializationInputProto other) {
if (other == null) {
return;
}

44
UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityRlInitializationOutput.cs


string.Concat(
"CkdtbGFnZW50cy9lbnZzL2NvbW11bmljYXRvcl9vYmplY3RzL3VuaXR5X3Js",
"X2luaXRpYWxpemF0aW9uX291dHB1dC5wcm90bxIUY29tbXVuaWNhdG9yX29i",
"amVjdHMaP21sYWdlbnRzL2VudnMvY29tbXVuaWNhdG9yX29iamVjdHMvYnJh",
"aW5fcGFyYW1ldGVyc19wcm90by5wcm90bxpFbWxhZ2VudHMvZW52cy9jb21t",
"dW5pY2F0b3Jfb2JqZWN0cy9lbnZpcm9ubWVudF9wYXJhbWV0ZXJzX3Byb3Rv",
"LnByb3RvIuYBChtVbml0eVJMSW5pdGlhbGl6YXRpb25PdXRwdXQSDAoEbmFt",
"ZRgBIAEoCRIPCgd2ZXJzaW9uGAIgASgJEhAKCGxvZ19wYXRoGAMgASgJEkQK",
"EGJyYWluX3BhcmFtZXRlcnMYBSADKAsyKi5jb21tdW5pY2F0b3Jfb2JqZWN0",
"cy5CcmFpblBhcmFtZXRlcnNQcm90bxJQChZlbnZpcm9ubWVudF9wYXJhbWV0",
"ZXJzGAYgASgLMjAuY29tbXVuaWNhdG9yX29iamVjdHMuRW52aXJvbm1lbnRQ",
"YXJhbWV0ZXJzUHJvdG9CH6oCHE1MQWdlbnRzLkNvbW11bmljYXRvck9iamVj",
"dHNiBnByb3RvMw=="));
"amVjdHMaOW1sYWdlbnRzL2VudnMvY29tbXVuaWNhdG9yX29iamVjdHMvYnJh",
"aW5fcGFyYW1ldGVycy5wcm90bxo/bWxhZ2VudHMvZW52cy9jb21tdW5pY2F0",
"b3Jfb2JqZWN0cy9lbnZpcm9ubWVudF9wYXJhbWV0ZXJzLnByb3RvIusBCiBV",
"bml0eVJMSW5pdGlhbGl6YXRpb25PdXRwdXRQcm90bxIMCgRuYW1lGAEgASgJ",
"Eg8KB3ZlcnNpb24YAiABKAkSEAoIbG9nX3BhdGgYAyABKAkSRAoQYnJhaW5f",
"cGFyYW1ldGVycxgFIAMoCzIqLmNvbW11bmljYXRvcl9vYmplY3RzLkJyYWlu",
"UGFyYW1ldGVyc1Byb3RvElAKFmVudmlyb25tZW50X3BhcmFtZXRlcnMYBiAB",
"KAsyMC5jb21tdW5pY2F0b3Jfb2JqZWN0cy5FbnZpcm9ubWVudFBhcmFtZXRl",
"cnNQcm90b0IfqgIcTUxBZ2VudHMuQ29tbXVuaWNhdG9yT2JqZWN0c2IGcHJv",
"dG8z"));
new pbr::FileDescriptor[] { global::MLAgents.CommunicatorObjects.BrainParametersProtoReflection.Descriptor, global::MLAgents.CommunicatorObjects.EnvironmentParametersProtoReflection.Descriptor, },
new pbr::FileDescriptor[] { global::MLAgents.CommunicatorObjects.BrainParametersReflection.Descriptor, global::MLAgents.CommunicatorObjects.EnvironmentParametersReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityRLInitializationOutput), global::MLAgents.CommunicatorObjects.UnityRLInitializationOutput.Parser, new[]{ "Name", "Version", "LogPath", "BrainParameters", "EnvironmentParameters" }, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityRLInitializationOutputProto), global::MLAgents.CommunicatorObjects.UnityRLInitializationOutputProto.Parser, new[]{ "Name", "Version", "LogPath", "BrainParameters", "EnvironmentParameters" }, null, null, null)
}));
}
#endregion

/// <summary>
/// The request message containing the academy's parameters.
/// </summary>
public sealed partial class UnityRLInitializationOutput : pb::IMessage<UnityRLInitializationOutput> {
private static readonly pb::MessageParser<UnityRLInitializationOutput> _parser = new pb::MessageParser<UnityRLInitializationOutput>(() => new UnityRLInitializationOutput());
public sealed partial class UnityRLInitializationOutputProto : pb::IMessage<UnityRLInitializationOutputProto> {
private static readonly pb::MessageParser<UnityRLInitializationOutputProto> _parser = new pb::MessageParser<UnityRLInitializationOutputProto>(() => new UnityRLInitializationOutputProto());
public static pb::MessageParser<UnityRLInitializationOutput> Parser { get { return _parser; } }
public static pb::MessageParser<UnityRLInitializationOutputProto> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public UnityRLInitializationOutput() {
public UnityRLInitializationOutputProto() {
OnConstruction();
}

public UnityRLInitializationOutput(UnityRLInitializationOutput other) : this() {
public UnityRLInitializationOutputProto(UnityRLInitializationOutputProto other) : this() {
name_ = other.name_;
version_ = other.version_;
logPath_ = other.logPath_;

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public UnityRLInitializationOutput Clone() {
return new UnityRLInitializationOutput(this);
public UnityRLInitializationOutputProto Clone() {
return new UnityRLInitializationOutputProto(this);
}
/// <summary>Field number for the "name" field.</summary>

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as UnityRLInitializationOutput);
return Equals(other as UnityRLInitializationOutputProto);
public bool Equals(UnityRLInitializationOutput other) {
public bool Equals(UnityRLInitializationOutputProto other) {
if (ReferenceEquals(other, null)) {
return false;
}

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(UnityRLInitializationOutput other) {
public void MergeFrom(UnityRLInitializationOutputProto other) {
if (other == null) {
return;
}

68
UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityRlInput.cs


byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CjdtbGFnZW50cy9lbnZzL2NvbW11bmljYXRvcl9vYmplY3RzL3VuaXR5X3Js",
"X2lucHV0LnByb3RvEhRjb21tdW5pY2F0b3Jfb2JqZWN0cxo7bWxhZ2VudHMv",
"ZW52cy9jb21tdW5pY2F0b3Jfb2JqZWN0cy9hZ2VudF9hY3Rpb25fcHJvdG8u",
"cHJvdG8aRW1sYWdlbnRzL2VudnMvY29tbXVuaWNhdG9yX29iamVjdHMvZW52",
"aXJvbm1lbnRfcGFyYW1ldGVyc19wcm90by5wcm90bxo2bWxhZ2VudHMvZW52",
"cy9jb21tdW5pY2F0b3Jfb2JqZWN0cy9jb21tYW5kX3Byb3RvLnByb3RvIrQD",
"CgxVbml0eVJMSW5wdXQSSwoNYWdlbnRfYWN0aW9ucxgBIAMoCzI0LmNvbW11",
"bmljYXRvcl9vYmplY3RzLlVuaXR5UkxJbnB1dC5BZ2VudEFjdGlvbnNFbnRy",
"eRJQChZlbnZpcm9ubWVudF9wYXJhbWV0ZXJzGAIgASgLMjAuY29tbXVuaWNh",
"dG9yX29iamVjdHMuRW52aXJvbm1lbnRQYXJhbWV0ZXJzUHJvdG8SEwoLaXNf",
"dHJhaW5pbmcYAyABKAgSMwoHY29tbWFuZBgEIAEoDjIiLmNvbW11bmljYXRv",
"cl9vYmplY3RzLkNvbW1hbmRQcm90bxpNChRMaXN0QWdlbnRBY3Rpb25Qcm90",
"bxI1CgV2YWx1ZRgBIAMoCzImLmNvbW11bmljYXRvcl9vYmplY3RzLkFnZW50",
"QWN0aW9uUHJvdG8abAoRQWdlbnRBY3Rpb25zRW50cnkSCwoDa2V5GAEgASgJ",
"EkYKBXZhbHVlGAIgASgLMjcuY29tbXVuaWNhdG9yX29iamVjdHMuVW5pdHlS",
"TElucHV0Lkxpc3RBZ2VudEFjdGlvblByb3RvOgI4AUIfqgIcTUxBZ2VudHMu",
"Q29tbXVuaWNhdG9yT2JqZWN0c2IGcHJvdG8z"));
"X2lucHV0LnByb3RvEhRjb21tdW5pY2F0b3Jfb2JqZWN0cxo1bWxhZ2VudHMv",
"ZW52cy9jb21tdW5pY2F0b3Jfb2JqZWN0cy9hZ2VudF9hY3Rpb24ucHJvdG8a",
"P21sYWdlbnRzL2VudnMvY29tbXVuaWNhdG9yX29iamVjdHMvZW52aXJvbm1l",
"bnRfcGFyYW1ldGVycy5wcm90bxowbWxhZ2VudHMvZW52cy9jb21tdW5pY2F0",
"b3Jfb2JqZWN0cy9jb21tYW5kLnByb3RvIsMDChFVbml0eVJMSW5wdXRQcm90",
"bxJQCg1hZ2VudF9hY3Rpb25zGAEgAygLMjkuY29tbXVuaWNhdG9yX29iamVj",
"dHMuVW5pdHlSTElucHV0UHJvdG8uQWdlbnRBY3Rpb25zRW50cnkSUAoWZW52",
"aXJvbm1lbnRfcGFyYW1ldGVycxgCIAEoCzIwLmNvbW11bmljYXRvcl9vYmpl",
"Y3RzLkVudmlyb25tZW50UGFyYW1ldGVyc1Byb3RvEhMKC2lzX3RyYWluaW5n",
"GAMgASgIEjMKB2NvbW1hbmQYBCABKA4yIi5jb21tdW5pY2F0b3Jfb2JqZWN0",
"cy5Db21tYW5kUHJvdG8aTQoUTGlzdEFnZW50QWN0aW9uUHJvdG8SNQoFdmFs",
"dWUYASADKAsyJi5jb21tdW5pY2F0b3Jfb2JqZWN0cy5BZ2VudEFjdGlvblBy",
"b3RvGnEKEUFnZW50QWN0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRJLCgV2YWx1",
"ZRgCIAEoCzI8LmNvbW11bmljYXRvcl9vYmplY3RzLlVuaXR5UkxJbnB1dFBy",
"b3RvLkxpc3RBZ2VudEFjdGlvblByb3RvOgI4AUIfqgIcTUxBZ2VudHMuQ29t",
"bXVuaWNhdG9yT2JqZWN0c2IGcHJvdG8z"));
new pbr::FileDescriptor[] { global::MLAgents.CommunicatorObjects.AgentActionProtoReflection.Descriptor, global::MLAgents.CommunicatorObjects.EnvironmentParametersProtoReflection.Descriptor, global::MLAgents.CommunicatorObjects.CommandProtoReflection.Descriptor, },
new pbr::FileDescriptor[] { global::MLAgents.CommunicatorObjects.AgentActionReflection.Descriptor, global::MLAgents.CommunicatorObjects.EnvironmentParametersReflection.Descriptor, global::MLAgents.CommunicatorObjects.CommandReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityRLInput), global::MLAgents.CommunicatorObjects.UnityRLInput.Parser, new[]{ "AgentActions", "EnvironmentParameters", "IsTraining", "Command" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityRLInput.Types.ListAgentActionProto), global::MLAgents.CommunicatorObjects.UnityRLInput.Types.ListAgentActionProto.Parser, new[]{ "Value" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityRLInputProto), global::MLAgents.CommunicatorObjects.UnityRLInputProto.Parser, new[]{ "AgentActions", "EnvironmentParameters", "IsTraining", "Command" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityRLInputProto.Types.ListAgentActionProto), global::MLAgents.CommunicatorObjects.UnityRLInputProto.Types.ListAgentActionProto.Parser, new[]{ "Value" }, null, null, null),
null, })
}));
}

#region Messages
public sealed partial class UnityRLInput : pb::IMessage<UnityRLInput> {
private static readonly pb::MessageParser<UnityRLInput> _parser = new pb::MessageParser<UnityRLInput>(() => new UnityRLInput());
public sealed partial class UnityRLInputProto : pb::IMessage<UnityRLInputProto> {
private static readonly pb::MessageParser<UnityRLInputProto> _parser = new pb::MessageParser<UnityRLInputProto>(() => new UnityRLInputProto());
public static pb::MessageParser<UnityRLInput> Parser { get { return _parser; } }
public static pb::MessageParser<UnityRLInputProto> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public UnityRLInput() {
public UnityRLInputProto() {
OnConstruction();
}

public UnityRLInput(UnityRLInput other) : this() {
public UnityRLInputProto(UnityRLInputProto other) : this() {
agentActions_ = other.agentActions_.Clone();
EnvironmentParameters = other.environmentParameters_ != null ? other.EnvironmentParameters.Clone() : null;
isTraining_ = other.isTraining_;

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public UnityRLInput Clone() {
return new UnityRLInput(this);
public UnityRLInputProto Clone() {
return new UnityRLInputProto(this);
private static readonly pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLInput.Types.ListAgentActionProto>.Codec _map_agentActions_codec
= new pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLInput.Types.ListAgentActionProto>.Codec(pb::FieldCodec.ForString(10), pb::FieldCodec.ForMessage(18, global::MLAgents.CommunicatorObjects.UnityRLInput.Types.ListAgentActionProto.Parser), 10);
private readonly pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLInput.Types.ListAgentActionProto> agentActions_ = new pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLInput.Types.ListAgentActionProto>();
private static readonly pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLInputProto.Types.ListAgentActionProto>.Codec _map_agentActions_codec
= new pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLInputProto.Types.ListAgentActionProto>.Codec(pb::FieldCodec.ForString(10), pb::FieldCodec.ForMessage(18, global::MLAgents.CommunicatorObjects.UnityRLInputProto.Types.ListAgentActionProto.Parser), 10);
private readonly pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLInputProto.Types.ListAgentActionProto> agentActions_ = new pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLInputProto.Types.ListAgentActionProto>();
public pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLInput.Types.ListAgentActionProto> AgentActions {
public pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLInputProto.Types.ListAgentActionProto> AgentActions {
get { return agentActions_; }
}

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public override bool Equals(object other) {
return Equals(other as UnityRLInput);
return Equals(other as UnityRLInputProto);
public bool Equals(UnityRLInput other) {
public bool Equals(UnityRLInputProto other) {
if (ReferenceEquals(other, null)) {
return false;
}

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(UnityRLInput other) {
public void MergeFrom(UnityRLInputProto other) {
if (other == null) {
return;
}

}
#region Nested types
/// <summary>Container for nested types declared in the UnityRLInput message type.</summary>
/// <summary>Container for nested types declared in the UnityRLInputProto message type.</summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static partial class Types {
public sealed partial class ListAgentActionProto : pb::IMessage<ListAgentActionProto> {

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::MLAgents.CommunicatorObjects.UnityRLInput.Descriptor.NestedTypes[0]; }
get { return global::MLAgents.CommunicatorObjects.UnityRLInputProto.Descriptor.NestedTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]

56
UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityRlOutput.cs


byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CjhtbGFnZW50cy9lbnZzL2NvbW11bmljYXRvcl9vYmplY3RzL3VuaXR5X3Js",
"X291dHB1dC5wcm90bxIUY29tbXVuaWNhdG9yX29iamVjdHMaOW1sYWdlbnRz",
"L2VudnMvY29tbXVuaWNhdG9yX29iamVjdHMvYWdlbnRfaW5mb19wcm90by5w",
"cm90byKUAgoNVW5pdHlSTE91dHB1dBJHCgphZ2VudEluZm9zGAIgAygLMjMu",
"Y29tbXVuaWNhdG9yX29iamVjdHMuVW5pdHlSTE91dHB1dC5BZ2VudEluZm9z",
"RW50cnkaSQoSTGlzdEFnZW50SW5mb1Byb3RvEjMKBXZhbHVlGAEgAygLMiQu",
"Y29tbXVuaWNhdG9yX29iamVjdHMuQWdlbnRJbmZvUHJvdG8aaQoPQWdlbnRJ",
"bmZvc0VudHJ5EgsKA2tleRgBIAEoCRJFCgV2YWx1ZRgCIAEoCzI2LmNvbW11",
"bmljYXRvcl9vYmplY3RzLlVuaXR5UkxPdXRwdXQuTGlzdEFnZW50SW5mb1By",
"b3RvOgI4AUoECAEQAkIfqgIcTUxBZ2VudHMuQ29tbXVuaWNhdG9yT2JqZWN0",
"c2IGcHJvdG8z"));
"X291dHB1dC5wcm90bxIUY29tbXVuaWNhdG9yX29iamVjdHMaM21sYWdlbnRz",
"L2VudnMvY29tbXVuaWNhdG9yX29iamVjdHMvYWdlbnRfaW5mby5wcm90byKj",
"AgoSVW5pdHlSTE91dHB1dFByb3RvEkwKCmFnZW50SW5mb3MYAiADKAsyOC5j",
"b21tdW5pY2F0b3Jfb2JqZWN0cy5Vbml0eVJMT3V0cHV0UHJvdG8uQWdlbnRJ",
"bmZvc0VudHJ5GkkKEkxpc3RBZ2VudEluZm9Qcm90bxIzCgV2YWx1ZRgBIAMo",
"CzIkLmNvbW11bmljYXRvcl9vYmplY3RzLkFnZW50SW5mb1Byb3RvGm4KD0Fn",
"ZW50SW5mb3NFbnRyeRILCgNrZXkYASABKAkSSgoFdmFsdWUYAiABKAsyOy5j",
"b21tdW5pY2F0b3Jfb2JqZWN0cy5Vbml0eVJMT3V0cHV0UHJvdG8uTGlzdEFn",
"ZW50SW5mb1Byb3RvOgI4AUoECAEQAkIfqgIcTUxBZ2VudHMuQ29tbXVuaWNh",
"dG9yT2JqZWN0c2IGcHJvdG8z"));
new pbr::FileDescriptor[] { global::MLAgents.CommunicatorObjects.AgentInfoProtoReflection.Descriptor, },
new pbr::FileDescriptor[] { global::MLAgents.CommunicatorObjects.AgentInfoReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityRLOutput), global::MLAgents.CommunicatorObjects.UnityRLOutput.Parser, new[]{ "AgentInfos" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityRLOutput.Types.ListAgentInfoProto), global::MLAgents.CommunicatorObjects.UnityRLOutput.Types.ListAgentInfoProto.Parser, new[]{ "Value" }, null, null, null),
new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityRLOutputProto), global::MLAgents.CommunicatorObjects.UnityRLOutputProto.Parser, new[]{ "AgentInfos" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::MLAgents.CommunicatorObjects.UnityRLOutputProto.Types.ListAgentInfoProto), global::MLAgents.CommunicatorObjects.UnityRLOutputProto.Types.ListAgentInfoProto.Parser, new[]{ "Value" }, null, null, null),
null, })
}));
}

#region Messages
public sealed partial class UnityRLOutput : pb::IMessage<UnityRLOutput> {
private static readonly pb::MessageParser<UnityRLOutput> _parser = new pb::MessageParser<UnityRLOutput>(() => new UnityRLOutput());
public sealed partial class UnityRLOutputProto : pb::IMessage<UnityRLOutputProto> {
private static readonly pb::MessageParser<UnityRLOutputProto> _parser = new pb::MessageParser<UnityRLOutputProto>(() => new UnityRLOutputProto());
public static pb::MessageParser<UnityRLOutput> Parser { get { return _parser; } }
public static pb::MessageParser<UnityRLOutputProto> Parser { get { return _parser; } }
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public UnityRLOutput() {
public UnityRLOutputProto() {
OnConstruction();
}

public UnityRLOutput(UnityRLOutput other) : this() {
public UnityRLOutputProto(UnityRLOutputProto other) : this() {
public UnityRLOutput Clone() {
return new UnityRLOutput(this);
public UnityRLOutputProto Clone() {
return new UnityRLOutputProto(this);
private static readonly pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLOutput.Types.ListAgentInfoProto>.Codec _map_agentInfos_codec
= new pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLOutput.Types.ListAgentInfoProto>.Codec(pb::FieldCodec.ForString(10), pb::FieldCodec.ForMessage(18, global::MLAgents.CommunicatorObjects.UnityRLOutput.Types.ListAgentInfoProto.Parser), 18);
private readonly pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLOutput.Types.ListAgentInfoProto> agentInfos_ = new pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLOutput.Types.ListAgentInfoProto>();
private static readonly pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLOutputProto.Types.ListAgentInfoProto>.Codec _map_agentInfos_codec
= new pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLOutputProto.Types.ListAgentInfoProto>.Codec(pb::FieldCodec.ForString(10), pb::FieldCodec.ForMessage(18, global::MLAgents.CommunicatorObjects.UnityRLOutputProto.Types.ListAgentInfoProto.Parser), 18);
private readonly pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLOutputProto.Types.ListAgentInfoProto> agentInfos_ = new pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLOutputProto.Types.ListAgentInfoProto>();
public pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLOutput.Types.ListAgentInfoProto> AgentInfos {
public pbc::MapField<string, global::MLAgents.CommunicatorObjects.UnityRLOutputProto.Types.ListAgentInfoProto> AgentInfos {
return Equals(other as UnityRLOutput);
return Equals(other as UnityRLOutputProto);
public bool Equals(UnityRLOutput other) {
public bool Equals(UnityRLOutputProto other) {
if (ReferenceEquals(other, null)) {
return false;
}

}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public void MergeFrom(UnityRLOutput other) {
public void MergeFrom(UnityRLOutputProto other) {
if (other == null) {
return;
}

}
#region Nested types
/// <summary>Container for nested types declared in the UnityRLOutput message type.</summary>
/// <summary>Container for nested types declared in the UnityRLOutputProto message type.</summary>
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static partial class Types {
public sealed partial class ListAgentInfoProto : pb::IMessage<ListAgentInfoProto> {

[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public static pbr::MessageDescriptor Descriptor {
get { return global::MLAgents.CommunicatorObjects.UnityRLOutput.Descriptor.NestedTypes[0]; }
get { return global::MLAgents.CommunicatorObjects.UnityRLOutputProto.Descriptor.NestedTypes[0]; }
}
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]

8
UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityToExternal.cs


"CjptbGFnZW50cy9lbnZzL2NvbW11bmljYXRvcl9vYmplY3RzL3VuaXR5X3Rv",
"X2V4dGVybmFsLnByb3RvEhRjb21tdW5pY2F0b3Jfb2JqZWN0cxo2bWxhZ2Vu",
"dHMvZW52cy9jb21tdW5pY2F0b3Jfb2JqZWN0cy91bml0eV9tZXNzYWdlLnBy",
"b3RvMmcKD1VuaXR5VG9FeHRlcm5hbBJUCghFeGNoYW5nZRIiLmNvbW11bmlj",
"YXRvcl9vYmplY3RzLlVuaXR5TWVzc2FnZRoiLmNvbW11bmljYXRvcl9vYmpl",
"Y3RzLlVuaXR5TWVzc2FnZSIAQh+qAhxNTEFnZW50cy5Db21tdW5pY2F0b3JP",
"YmplY3RzYgZwcm90bzM="));
"b3RvMnYKFFVuaXR5VG9FeHRlcm5hbFByb3RvEl4KCEV4Y2hhbmdlEicuY29t",
"bXVuaWNhdG9yX29iamVjdHMuVW5pdHlNZXNzYWdlUHJvdG8aJy5jb21tdW5p",
"Y2F0b3Jfb2JqZWN0cy5Vbml0eU1lc3NhZ2VQcm90byIAQh+qAhxNTEFnZW50",
"cy5Db21tdW5pY2F0b3JPYmplY3RzYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::MLAgents.CommunicatorObjects.UnityMessageReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null));

48
UnitySDK/Assets/ML-Agents/Scripts/Grpc/CommunicatorObjects/UnityToExternalGrpc.cs


using grpc = global::Grpc.Core;
namespace MLAgents.CommunicatorObjects {
public static partial class UnityToExternal
public static partial class UnityToExternalProto
static readonly string __ServiceName = "communicator_objects.UnityToExternal";
static readonly string __ServiceName = "communicator_objects.UnityToExternalProto";
static readonly grpc::Marshaller<global::MLAgents.CommunicatorObjects.UnityMessage> __Marshaller_communicator_objects_UnityMessage = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::MLAgents.CommunicatorObjects.UnityMessage.Parser.ParseFrom);
static readonly grpc::Marshaller<global::MLAgents.CommunicatorObjects.UnityMessageProto> __Marshaller_communicator_objects_UnityMessageProto = grpc::Marshallers.Create((arg) => global::Google.Protobuf.MessageExtensions.ToByteArray(arg), global::MLAgents.CommunicatorObjects.UnityMessageProto.Parser.ParseFrom);
static readonly grpc::Method<global::MLAgents.CommunicatorObjects.UnityMessage, global::MLAgents.CommunicatorObjects.UnityMessage> __Method_Exchange = new grpc::Method<global::MLAgents.CommunicatorObjects.UnityMessage, global::MLAgents.CommunicatorObjects.UnityMessage>(
static readonly grpc::Method<global::MLAgents.CommunicatorObjects.UnityMessageProto, global::MLAgents.CommunicatorObjects.UnityMessageProto> __Method_Exchange = new grpc::Method<global::MLAgents.CommunicatorObjects.UnityMessageProto, global::MLAgents.CommunicatorObjects.UnityMessageProto>(
__Marshaller_communicator_objects_UnityMessage,
__Marshaller_communicator_objects_UnityMessage);
__Marshaller_communicator_objects_UnityMessageProto,
__Marshaller_communicator_objects_UnityMessageProto);
/// <summary>Service descriptor</summary>
public static global::Google.Protobuf.Reflection.ServiceDescriptor Descriptor

/// <summary>Base class for server-side implementations of UnityToExternal</summary>
public abstract partial class UnityToExternalBase
/// <summary>Base class for server-side implementations of UnityToExternalProto</summary>
public abstract partial class UnityToExternalProtoBase
{
/// <summary>
/// Sends the academy parameters

/// <returns>The response to send back to the client (wrapped by a task).</returns>
public virtual global::System.Threading.Tasks.Task<global::MLAgents.CommunicatorObjects.UnityMessage> Exchange(global::MLAgents.CommunicatorObjects.UnityMessage request, grpc::ServerCallContext context)
public virtual global::System.Threading.Tasks.Task<global::MLAgents.CommunicatorObjects.UnityMessageProto> Exchange(global::MLAgents