Indentifying issue
The trees are the part of the terrain and if you need to make trees you can easily do it . The trees will have a class of prefab and whenever the gameobject collide with any of the tree the collision task or say event would perform
solution
Thousands of trees could be created easily at the random location of the terrain and then the collision could easily be done by tagging and the code for the making trees would in the collider code. The trees will be disabled . The Ienumerator can be applied in the update method . The waitForSeconds(30) will wait for 30 seconds and then the code
gameobject.setactive(true)
will bring back the trees to their respective positions
code for creating trees at random location in start method
public GameObject trees;
for (int i = 0; i < 300; i++)
{
Vector3 localPosition = new Vector3(Random.Range(-200, 100), 0 , Random.Range(-200, 100));
Instantiate(trees, localPosition, Quaternion.identity);
}