private void CreatePrefabForChunk(MCS_Chunk chunk) { Vector3 chunkGameObjectPosition = new Vector3(chunk.WorldPos.x, chunk.WorldPos.y, chunk.WorldPos.z) * myVoxelSize; Transform chunkGameObject = Instantiate(myChunkPrefab, chunkGameObjectPosition, Quaternion.identity).transform; chunkGameObject.parent = transform; chunkGameObject.name = chunk.ToString(); MCC_ChunkObject chunkGameObjectScript = chunkGameObject.GetComponent <MCC_ChunkObject>(); chunkGameObjectScript.MyTexture = myWorldTextureAtlas; chunk.MyTransform = chunkGameObject; chunkGameObject.localScale = new Vector3(1, 1, 1) * myVoxelSize; terrainGeneration.GenerateChunk(myWorldData, chunk); decorationGeneration.GenerateDecoration(chunk); }
private void GenerateChunkMesh() { for (int x = 0; x < myWorldData.MyTerrainSizeX / myWorldData.MyChunkSizeX; x++) { for (int y = 0; y < myWorldData.MyTerrainSizeY / myWorldData.MyChunkSizeY; y++) { for (int z = 0; z < myWorldData.MyTerrainSizeZ / myWorldData.MyChunkSizeZ; z++) { Vector3Int chunPos = new Vector3Int(x, y, z); MCS_Chunk chunk = myWorldData.GetChunkByIndex(chunPos); MCC_ChunkObject chunkGameObjectScript = chunk.MyTransform.GetComponent <MCC_ChunkObject>(); myWorldData.MyChunkMesh.GenerateChunkMeshData(chunk); chunkGameObjectScript.CreateChunkGameObjectMesh(chunk); } } } }