Пример #1
0
    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);
    }
Пример #2
0
    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);
                }
            }
        }
    }