public void OnSwitchScene() { if (NetworkManager.Singleton && NetworkManager.Singleton.IsListening) { OnSceneSwitchBegin?.Invoke(); m_ExitingScene = true; ExitingNow = true; m_CurrentSceneSwitchProgress = NetworkManager.Singleton.SceneManager.SwitchScene(m_SceneToSwitchTo); m_CurrentSceneSwitchProgress.OnComplete += CurrentSceneSwitchProgress_OnComplete; } }
/// <summary> /// Switches to a new scene /// </summary> /// <param name="scenename"></param> public void SwitchScene(string scenename) { if (NetworkManager.Singleton.IsListening) { m_SceneProgress = NetworkSceneManager.SwitchScene(scenename); m_SceneProgress.OnClientLoadedScene += SceneProgress_OnClientLoadedScene; } else { SceneManager.LoadSceneAsync(scenename); } }
/// <summary> /// ExitAndLoadStartMenu /// This should be invoked upon a user exiting a multiplayer game session. /// </summary> public void ExitAndLoadStartMenu() { if (m_SceneProgress != null) { m_SceneProgress = null; } if (OnClientLoadedScene != null) { OnClientLoadedScene = null; } SetSceneState(SceneTransitionHandler.SceneStates.Start); SceneManager.LoadScene(1); }
private void StartHost() { Destroy(transform.parent.gameObject, 0.1f); Destroy(gameObject); foreach (GameObject obj in destroyList) { Destroy(obj); } NetworkingManager.Singleton.StartHost(); Debug.Log("Starting map..."); SceneSwitchProgress ssp = NetworkSceneManager.SwitchScene("SceneBuilder"); ssp.OnComplete += (bool err) => { if (err) { Debug.Log("We timed out :("); return; } GameObject Map = Instantiate(MapPrefab); Map.transform.position = new Vector3(30f, 0, 0); Map.GetComponent <NetworkedObject>().Spawn(); }; }