public static Scene CreateContainer(string name, LocalPhysicsMode physics = LocalPhysicsMode.None) { Scene fScene = SceneManager.GetSceneByName(name); if (!fScene.IsValid()) { return(SceneManager.CreateScene(name, new CreateSceneParameters(physics))); } else { return(default);
public void SubmitLoadingRequest(bool asynchronous, LocalPhysicsMode localPhysicsMode, bool setActive) { _loadRequests++; if (_loadRequests > 1) { return; } var loadSceneParameters = new LoadSceneParameters(LoadSceneMode.Additive, localPhysicsMode); if (asynchronous) { var operation = SceneManager.LoadSceneAsync(buildIndex, loadSceneParameters); operation.completed += o => { if (!o.isDone) { return; } var scene = SceneManager.GetSceneByBuildIndex(buildIndex); if (setActive) { SceneManager.SetActiveScene(scene); } }; } else { var scene = SceneManager.LoadScene(buildIndex, loadSceneParameters); if (setActive) { HiraCoroutines.Instance.StartCoroutine(SetActiveScene(scene)); } } }
public LocalPhysicsMode physicsMode; // None = 0, Physics3D = 1, Physics2D = 2 public override void Deserialize(NetworkReader reader) { sceneName = reader.ReadString(); sceneMode = (LoadSceneMode)reader.ReadByte(); physicsMode = (LocalPhysicsMode)reader.ReadByte(); }
internal void ClientChangeScene(string newSceneName, bool forceReload, LoadSceneMode sceneMode, LocalPhysicsMode physicsMode) { if (string.IsNullOrEmpty(newSceneName)) { Debug.LogError("ClientChangeScene empty scene name"); return; } if (LogFilter.Debug) { Debug.Log("ClientChangeScene newSceneName:" + newSceneName + " networkSceneName:" + networkSceneName); } if (newSceneName == networkSceneName) { if (!forceReload) { FinishLoadScene(); return; } } // vis2k: pause message handling while loading scene. otherwise we will process messages and then lose all // the state as soon as the load is finishing, causing all kinds of bugs because of missing state. // (client may be null after StopClient etc.) if (LogFilter.Debug) { Debug.Log("ClientChangeScene: pausing handlers while scene is loading to avoid data loss after scene was loaded."); } Transport.activeTransport.enabled = false; // Let client prepare for scene change OnClientChangeScene(newSceneName); loadingSceneAsync = SceneManager.LoadSceneAsync(newSceneName, new LoadSceneParameters() { loadSceneMode = sceneMode, localPhysicsMode = physicsMode, }); networkSceneName = newSceneName; //This should probably not change if additive is used }
public virtual void ServerChangeScene(string newSceneName, LoadSceneMode sceneMode, LocalPhysicsMode physicsMode) { if (string.IsNullOrEmpty(newSceneName)) { Debug.LogError("ServerChangeScene empty scene name"); return; } if (LogFilter.Debug) { Debug.Log("ServerChangeScene " + newSceneName); } NetworkServer.SetAllClientsNotReady(); networkSceneName = newSceneName; LoadSceneParameters loadSceneParameters = new LoadSceneParameters(sceneMode, physicsMode); loadingSceneAsync = SceneManager.LoadSceneAsync(newSceneName, loadSceneParameters); SceneMessage msg = new SceneMessage() { sceneName = newSceneName, sceneMode = loadSceneParameters.loadSceneMode, physicsMode = loadSceneParameters.localPhysicsMode }; NetworkServer.SendToAll(msg); startPositionIndex = 0; startPositions.Clear(); }
public SceneLoadParameters(LoadSceneMode addMode, LocalPhysicsMode physicsMode, bool allowActivation = true) { m_addMode = addMode; m_physicsMode = physicsMode; m_allowActivation = allowActivation; }
public CreateSceneParameters(LocalPhysicsMode physicsMode) { m_LocalPhysicsMode = physicsMode; }
public LoadSceneParameters(LoadSceneMode mode, LocalPhysicsMode physicsMode) { m_LoadSceneMode = mode; m_LocalPhysicsMode = physicsMode; }
public LoadSceneParameters(LoadSceneMode mode) { m_LoadSceneMode = mode; m_LocalPhysicsMode = LocalPhysicsMode.None; }
public static ISceneLoadPromise LoadAsync(string sceneName, LoadSceneMode mode = LoadSceneMode.Additive, LocalPhysicsMode localPhysicsMode = LocalPhysicsMode.Physics3D) { return(Load(sceneName, new SceneLoadSettings() { Async = true, LoadSceneMode = mode, LocalPhysicsMode = localPhysicsMode })); }
public void ChangeScene(string sceneName, LoadSceneMode sceneMode, LocalPhysicsMode physicsMode) { netMan.ServerChangeScene(sceneName, sceneMode, physicsMode); }