Exemple #1
0
 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();
         }
     }
 }
Exemple #2
0
 public static void UnregisterBridge(ChunkBridge bridge)
 {
     Assert.IsNotNull(bridge);
     foreach (var c in bridge.ChunksToLoad)
     {
         Infos[c].InterestedChunkBridges.Remove(bridge);
     }
 }