示例#1
0
        //将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)");
        }
示例#2
0
        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: 保存当前世界成功。");
        }