public void GenerateTerrain()
    {
        float[,] noiseMap =
            NoiseGen.GenerateNoiseMap(width, height, seed, scale, octaves, persistance, lacunarity, offset);

        FoliageGen.removeAllFoliage();

        TerrainRendering terrainRendering = FindObjectOfType <TerrainRendering>();


        List <ChunkData> chunks   = NoiseGen.ChunkNoiseMap(noiseMap);
        List <MeshData>  meshData = new List <MeshData>();

        foreach (ChunkData chunkData in chunks)
        {
            meshData.Add(MeshGen.GenerateTerrainMesh(chunkData.heightMap, meshHeightMultiplier, meshHeightCurve, chunkData.chunkCoords, regions));
        }

        if (useShader)
        {
            terrainRendering.DrawMesh(meshData, meshScale, shaderMaterial);
        }
        else
        {
            terrainRendering.DrawMesh(meshData, meshScale, null);
        }


        UpdateShaderData();
    }
    public override void OnInspectorGUI()
    {
        FoliageGen mapGen = (FoliageGen)target;

        bool defaultInspect = DrawDefaultInspector();

        GUILayout.Label("noiseTexture");
        if (mapGen.res != null && mapGen.res.Length != 0)
        {
            GUILayout.Label(TextureGenerator.TextureFromHeightMap(mapGen.res));
        }

        if (GUILayout.Button("Generate"))
        {
            mapGen.Refresh();
        }
    }
 public void GenerateFoliage()
 {
     float[,] treeNoiseMap = NoiseGen.GenerateTreeNoiseMap(width, height);
     FoliageGen.GenerateFoliage(treeNoiseMap, regions, forestAmount, meshScale, meshHeightCurve, meshHeightMultiplier);
 }