/** * Start the lobby in server-mode. */ public void StartServer(ICExperiment experiment) { SwitchToPanel(lobby.gameObject); lobby.StartServer(experiment); currentState = State.ServerLobby; }
/** * Start the experiment (by changing the scene) */ public void StartExperiment(ICExperiment experiment) { if (!experiment) { return; } lobby.StopBroadcast(); // Switch back to neutral panel SwitchToPanel(experimentBrowser.gameObject); currentState = State.ExperimentBrowser; // Change level ICEventfulNetworkManager networkManager = ICNetworkUtilities.GetNetworkManager(); networkManager.ServerChangeScene(experiment.sceneName); }
/** * Start the lobby in server-mode. */ public void StartServer(ICExperiment experiment) { var networkDiscovery = ICNetworkUtilities.GetNetworkDiscovery(); var networkManager = ICNetworkUtilities.GetNetworkManager(); // Mark as server _isServer = true; // Update listeners SetupServerEventListeners(networkManager); // Start server and initialize broadcast networkManager.StartHost(); networkDiscovery.Initialize(); networkDiscovery.broadcastData = "NetworkManager:" + networkManager.networkAddress + ":" + networkManager.networkPort + ":" + experiment.getDisplayName(); if (!networkDiscovery.StartAsServer()) { throw new Exception("StartAsServer returned false in ICLobbyController."); } // Enable start button startButton.enabled = true; startButton.onClick.RemoveAllListeners(); startButton.onClick.AddListener(() => { experimentSetup.StartExperiment(experiment); }); // Remove old synchronization script if (syncScript) { NetworkServer.Destroy(syncScript.gameObject); Destroy(syncScript.gameObject); } // Spawn synchronization script on the network syncScript = GameObject.Instantiate(syncScriptPrefab).GetComponent <ICLobbySync>(); NetworkServer.Spawn(syncScript.gameObject); syncScript.transform.SetParent(gameObject.transform); }