//将data从temp写入文件 public static void SaveAllChunksInstant() { if (!Engine.SaveVoxelData) { Debug.LogWarning("CubeMaster: 不允许保存。请在Engine中设置。"); return; } // 对每一个chunk,把数据写入内存 foreach (Chunk chunk in ChunkManager.Chunks.Values) { chunk.gameObject.GetComponent <ChunkDataFiles>().SaveData(); } // 写入本地 ChunkDataFiles.WriteLoadedChunks(); Debug.Log("CubeMaster: World saved successfully. (Instant)"); }
public static IEnumerator SaveAllChunks() { if (!Engine.SaveVoxelData) { Debug.LogWarning("CubeMaster: 不允许保存。请在Engine中设置。"); yield break; } while (ChunkDataFiles.SavingChunks) { yield return(new WaitForEndOfFrame()); } ChunkDataFiles.SavingChunks = true; //对于每一个chunk,把数据保存到内存中 int count = 0; List <Chunk> chunksToSave = new List <Chunk>(ChunkManager.Chunks.Values); foreach (Chunk chunk in chunksToSave) { chunk.gameObject.GetComponent <ChunkDataFiles>().SaveData(); count++; if (count > Engine.MaxChunkSaves) { yield return(new WaitForEndOfFrame()); count = 0; } } // 把数据写入到本地 ChunkDataFiles.WriteLoadedChunks(); ChunkDataFiles.SavingChunks = false; Debug.Log("CubeMaster: 保存当前世界成功。"); }