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;
}
}
}