/// <summary> /// Cycles through the 3 different ClientRpcDirectTestingModes /// </summary> private void SelectNextDirectUpdateMethod() { m_ClientIndices.Clear(); m_GlobalDirectCounter = 0; m_GlobalDirectCurrentClientIdIndex = 0; switch (m_ClientRpcDirectTestingMode) { case ClientRpcDirectTestingModes.Single: { m_ClientRpcDirectTestingMode = ClientRpcDirectTestingModes.Striped; break; } case ClientRpcDirectTestingModes.Striped: { //Prepare to send to everyone m_ClientIndices.AddRange(m_ClientIds.ToArray()); m_ClientRpcDirectTestingMode = ClientRpcDirectTestingModes.Unified; break; } case ClientRpcDirectTestingModes.Unified: { m_ClientRpcDirectTestingMode = ClientRpcDirectTestingModes.Single; break; } } }
/// <summary> /// Handles common and NetworkManager mode specifc initializations /// </summary> private void InitializeNetworkManager() { m_ClientRpcParams.Send.TargetClientIds = new ulong[] { 0 }; m_ClientRpcParamsMultiParameter.Send.TargetClientIds = new ulong[] { 0 }; m_ClientRpcDirectTestingMode = ClientRpcDirectTestingModes.Single; m_ConnectionModeButtonParent.SetActive(false); m_MultiParameterCanSend = true; m_GlobalDirectScale = 2; m_GlobalDirectFrequency = 1.0f / (100.0f / (float)m_GlobalDirectScale); if (m_CounterTextObject) { m_CounterTextObject.gameObject.SetActive(true); } switch (m_CurrentNetworkManagerMode) { case NetworkManagerMode.Client: { if (!m_ConnectionEventOccurred) { NetworkManager.Singleton.StartClient(); } m_ServerRpcParams.Send.UpdateStage = NetworkUpdateStage.Update; Screen.SetResolution(800, 80, FullScreenMode.Windowed); break; } case NetworkManagerMode.Host: { if (!m_ConnectionEventOccurred) { NetworkManager.Singleton.StartHost(); } m_ClientRpcParams.Send.UpdateStage = NetworkUpdateStage.PreUpdate; Screen.SetResolution(800, 480, FullScreenMode.Windowed); break; } case NetworkManagerMode.Server: { if (!m_ConnectionEventOccurred) { NetworkManager.Singleton.StartServer(); } m_ClientProgressBar.enabled = false; m_ClientRpcParams.Send.UpdateStage = NetworkUpdateStage.PostLateUpdate; Screen.SetResolution(800, 480, FullScreenMode.Windowed); break; } } m_RpcPerSecondTimer = Time.realtimeSinceStartup; }