- Home /
How to replace the build detail mesh grass for a change in weather seasons
Hi folks! Sorry about my English. The question is. The game is changing seasons. Mesh Prefabs parts are replaced depending on the season. This code works fine in the editor. There is no change in the build. At change of a season in a runtime the grass disappears. Thanks for any help!
public class Season_terrain : MonoBehaviour {
public Terrain terrain;
public GameObject[] Detail_go;
public bool Winter, Spring, Summer, Autumn;
update ()
{
if(winter)
Create_season( Detail_go[0])
if(spring)
Create_season( Detail_go[1])
if(summer)
Create_season( Detail_go[2])
if(autumn)
Create_season( Detail_go[3])
}
void Create_season(GameObject[] Detail_go)
{
for (int i = 0; i < terrain.terrainData.detailPrototypes.Length; i++)
{
Grass_w[i] = new DetailPrototype();
Grass_w[i].prototype = Detail_go[i];
Grass_w[i].usePrototypeMesh = true;
Grass_w[i].renderMode = DetailRenderMode.Grass;
}
}
}
Answer by feigefreya · Jun 12, 2020 at 10:02 AM
The question is a little older but anyway: editing the prototype array this way does not work. You'd rather copy the prototype array to your own variable, replace the details in there and afterwards, reassign the whole array to the terrain - see this post: https://answers.unity.com/questions/1217389/how-do-i-edit-the-terraindatadetailprototypehealth.html
Your answer
Follow this Question
Related Questions
Placing grass on terrain in script on a certain height 2 Answers
Unity Terrain Detail Mesh is sliding on Ground 1 Answer
Painting grass with detail mesh and grass texture? 0 Answers
Does the grass texture I add effect detail meshes that have the render mode "grass"? 0 Answers
Can I stop some things in terrain > paint details from moving with the wind? 1 Answer