namespace Unity.MLAgents { /// /// Factory class for an ICommunicator instance. This is used to the at startup. /// By default, on desktop platforms, an ICommunicator will be created and attempt to connect /// to a trainer. This behavior can be prevented by setting to false /// *before* the is initialized. /// public static class CommunicatorFactory { static bool s_Enabled = true; /// /// Whether or not an ICommunicator instance will be created when the is initialized. /// Changing this has no effect after the has already been initialized. /// public static bool Enabled { get => s_Enabled; set => s_Enabled = value; } internal static ICommunicator Create() { #if UNITY_EDITOR || UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX || UNITY_STANDALONE_LINUX if (s_Enabled) { return new RpcCommunicator(); } #endif // Non-desktop or disabled return null; } } }