private void checkForMeshes() { if (!initLoadDone) { for (ChunkDrawDataArray chunkdrawdata = MeshGenerationQueue.GetFromQueue(); chunkdrawdata != null; chunkdrawdata = MeshGenerationQueue.GetFromQueue()) { //int3 key = new int3(chunkdrawdata.chunkPos.x - offset.x, chunkdrawdata.chunkPos.y - offset.y, chunkdrawdata.chunkPos.z - offset.z); chunkdrawdata.chunk.updateMesh(chunkdrawdata.vertexList, chunkdrawdata.UVList, chunkdrawdata.triangleList); } //checkForDestroys(); initLoadDone = true; } if (initLoadDone) { //DateTime end = DateTime.Now; //TimeSpan generationTime = end - startTime; //Debug.Log(generationTime); /* * if(counter < CONST.framesBetweenMeshes) * { * counter++; * return; * } * else * { * counter = 0; * } */ for (int i = 0; i < meshesPerFrame; i++) { ChunkDrawDataArray chunkdrawdata = MeshGenerationQueue.GetFromQueue(); if (chunkdrawdata != null) { chunkdrawdata.chunk.updateMesh(chunkdrawdata.vertexList, chunkdrawdata.UVList, chunkdrawdata.triangleList); } else { break; } } //else //{ //checkForDestroys(); //} } }
private void checkForMeshes() { if (!initLoadDone) { for (ChunkDrawDataArray chunkdrawdata = MeshGenerationQueue.GetFromQueue(); chunkdrawdata != null; chunkdrawdata = MeshGenerationQueue.GetFromQueue()) { int3 offset = InfiniteWorld.ChunkWorldPositionOffset; //int3 key = new int3(chunkdrawdata.chunkPos.x - offset.x, chunkdrawdata.chunkPos.y - offset.y, chunkdrawdata.chunkPos.z - offset.z); chunkdrawdata.chunk.updateMesh(chunkdrawdata.vertexList, chunkdrawdata.UVList, chunkdrawdata.triangleList); } checkForDestroys(); } if (initLoadDone) { ChunkDrawDataArray chunkdrawdata = MeshGenerationQueue.GetFromQueue(); if (chunkdrawdata != null) { /* * int3 offset = ScrollWorldAroundObject.ChunkWorldPositionOffset; * //int3 key = new int3(chunkdrawdata.chunkPos.x, chunkdrawdata.chunkPos.y, chunkdrawdata.chunkPos.z); * int3 key = new int3(chunkdrawdata.chunkPos.x - offset.x, chunkdrawdata.chunkPos.y - offset.y, chunkdrawdata.chunkPos.z - offset.z); * * if (key.x < 0) key.x = 0; * if (key.y < 0) key.y = 0; * if (key.z < 0) key.z = 0; * * if (key.x > CONST.worldChunkCount.x - 1) { key.x = CONST.worldChunkCount.x - 1; } * if (key.y > CONST.worldChunkCount.y - 1) { key.y = CONST.worldChunkCount.y - 1; } * if (key.z > CONST.worldChunkCount.z - 1) { key.z = CONST.worldChunkCount.z - 1; } */ //lock (WorldGameObject.chunks) //{ //Debug.Log(key.x + " " + key.y + " " + key.z); chunkdrawdata.chunk.updateMesh(chunkdrawdata.vertexList, chunkdrawdata.UVList, chunkdrawdata.triangleList); //} } else { checkForDestroys(); } } }