Hello everyone,
I’ve written a few scripts that make dynamic procedural height maps based on perline noise. This works great! I followed another tutorial that showed me how to convert those height maps into meshes which works great! Here is an image of a map I generated procedurally.
However I’ve quickly come to realize that meshes do not make for the best terrains because of their limitations. Specifically I want to procedurally texture the map and place bushes etc. Everything I have read has said that terrains are a better type for this kind of application!
However I’m having trouble gaining any traction on how to implement a dynamic height map onto a terrain. There are plenty of resources I can read on how to do it manually, or how to import height maps etc. This isn’t what I want.
So my question is, given that I already have a height map stored in a normalized 2d array how do I transfer that height map to a terrain at runtime?
public static void GenerateTerrainMesh(float [,] heightMap) {
Terrain mapTerrain = Terrain.activeTerrain; //Get the active terrain (make sure you only have 1 terrain in the scene)
TerrainData terrainData = mapTerrain.terrainData;
int width = heightMap.GetLength (0);
int height = heightMap.GetLength (1);
terrainData.size = new Vector3 (width, 1, height);
terrainData.SetHeights (0, 0, heightMap);
}
Please not that I have manually placed a terrain object into my scene so I don’t need to (I don’t think?) dynamically create one.
That little bit of code is where I’ve gotten to after all my ready and trial and errors. I know it’s not much but you can see what I’m trying to do.
Thank you so much to anyone who can help me!