public static void RegisterBridge(ChunkBridge bridge) { Assert.IsNotNull(bridge); foreach (var c in bridge.ChunksToLoad) { var i = Infos [c]; i.InterestedChunkBridges.Add(bridge); if (i.State == State.Unloaded || i.State == State.Unloading) { Debug.Log("A loading job is started for \"" + i.SceneName + "\""); i.AsyncLoadingOp = SceneManager.LoadSceneAsync(i.SceneName, LoadSceneMode.Additive); i.State = State.Loading; } } if (bridge.IsSync) { startUnloadingAllUnusedChunks(); syncWaitChunks.Clear(); foreach (var c in bridge.ChunksToLoad.Where(c => Infos[c].State != State.Loaded)) { syncWaitChunks.Add(c); } if (syncWaitChunks.Count > 0) { GameState.FreezeTheWorld(); } } }
public static void UnregisterBridge(ChunkBridge bridge) { Assert.IsNotNull(bridge); foreach (var c in bridge.ChunksToLoad) { Infos[c].InterestedChunkBridges.Remove(bridge); } }