private void btnGenerateForest_Click(object sender, EventArgs e) { var fs = GetForestSpecification(); if (fs == null) { return; } forest = ForestGenerator.Generate(fs, "^"); var sfd = new SaveFileDialog { Filter = "txt files (*.txt)|*.txt", FileName = "forest.txt" }; if (sfd.ShowDialog() != DialogResult.OK) { return; } if (string.IsNullOrEmpty(sfd.FileName)) { return; } ForestGenerator.SaveForestToFile(forest, sfd.FileName, false); }
GameObject CreateForest(float[,] heightMap, Vector3[] terrainNormals) { forestGenerator.Clear(); GameObject forestGameObject = forestGenerator.Generate(heightMap, terrainNormals, waterLevel, seed); forestGameObject.isStatic = true; return(forestGameObject); }
private void Start() { meshRenderer = gameObject.AddComponent <MeshRenderer>(); meshFilter = gameObject.AddComponent <MeshFilter>(); material = new Material(Shader.Find("Standard")); // Validation check to ensure terrainSize is not smaller than forestSize, as this will create an indexOutOfBounds exception. if (terrainSize < Forest.forestSize) { terrainSize = Forest.forestSize; } heightMap = new float[terrainSize, terrainSize]; GenerateHeightMap(); Generate(); Forest.Generate(heightMap); }