public NetworkClient StartClient(MatchInfo info, ConnectionConfig config) { matchInfo = info; if (m_RunInBackground) { Application.runInBackground = true; } isNetworkActive = true; client = new NetworkClient(); if (config != null) { client.Configure(config, 1); } else if (m_CustomConfig && m_ConnectionConfig != null) { m_ConnectionConfig.Channels.Clear(); foreach (QosType channel in m_Channels) { m_ConnectionConfig.AddChannel(channel); } client.Configure(m_ConnectionConfig, m_MaxConnections); } RegisterClientMessages(client); if (matchInfo != null) { if (LogFilter.logDebug) { Debug.Log("NetworkManager StartClient match: " + matchInfo); } client.Connect(matchInfo); } else if (m_EndPoint != null) { if (LogFilter.logDebug) { Debug.Log("NetworkManager StartClient using provided SecureTunnel"); } client.Connect(m_EndPoint); } else { if (string.IsNullOrEmpty(m_NetworkAddress)) { if (LogFilter.logError) { Debug.LogError("Must set the Network Address field in the manager"); } return(null); } if (LogFilter.logDebug) { Debug.Log("NetworkManager StartClient address:" + m_NetworkAddress + " port:" + m_NetworkPort); } if (m_UseSimulator) { client.ConnectWithSimulator(m_NetworkAddress, m_NetworkPort, m_SimulatedLatency, m_PacketLossPercentage); } else { client.Connect(m_NetworkAddress, m_NetworkPort); } } OnStartClient(client); s_Address = m_NetworkAddress; return(client); }
public NetworkClient StartClient(MatchInfo info, ConnectionConfig config) { InitializeSingleton(); matchInfo = info; if (m_RunInBackground) { Application.runInBackground = true; } isNetworkActive = true; if (m_GlobalConfig != null) { NetworkTransport.Init(m_GlobalConfig); } client = new NetworkClient(); if (config != null) { if ((config.UsePlatformSpecificProtocols) && (UnityEngine.Application.platform != RuntimePlatform.PS4)) { throw new ArgumentOutOfRangeException("Platform specific protocols are not supported on this platform"); } client.Configure(config, 1); } else { if (m_CustomConfig && m_ConnectionConfig != null) { m_ConnectionConfig.Channels.Clear(); foreach (var c in m_Channels) { m_ConnectionConfig.AddChannel(c); } if ((m_ConnectionConfig.UsePlatformSpecificProtocols) && (UnityEngine.Application.platform != RuntimePlatform.PS4)) { throw new ArgumentOutOfRangeException("Platform specific protocols are not supported on this platform"); } client.Configure(m_ConnectionConfig, m_MaxConnections); } } RegisterClientMessages(client); if (matchInfo != null) { if (LogFilter.logDebug) { Debug.Log("NetworkManager StartClient match: " + matchInfo); } client.Connect(matchInfo); } else if (m_EndPoint != null) { if (LogFilter.logDebug) { Debug.Log("NetworkManager StartClient using provided SecureTunnel"); } client.Connect(m_EndPoint); } else { if (string.IsNullOrEmpty(m_NetworkAddress)) { if (LogFilter.logError) { Debug.LogError("Must set the Network Address field in the manager"); } return(null); } if (LogFilter.logDebug) { Debug.Log("NetworkManager StartClient address:" + m_NetworkAddress + " port:" + m_NetworkPort); } if (m_UseSimulator) { client.ConnectWithSimulator(m_NetworkAddress, m_NetworkPort, m_SimulatedLatency, m_PacketLossPercentage); } else { client.Connect(m_NetworkAddress, m_NetworkPort); } } #if ENABLE_UNET_HOST_MIGRATION if (m_MigrationManager != null) { m_MigrationManager.Initialize(client, matchInfo); } #endif OnStartClient(client); s_Address = m_NetworkAddress; return(client); }