Trees on mesh

Is there a “Good” way to do this I know how to places them and all, what I am not sure of is that how to keep the performance at a decent level. So spawning like 600+ tree * 9 tiles

PS. Is there a way to keep the hierachy “Clean”, so it isn’t flooded with gameobjects. Like categorizing them. (So Instead of having 3000 gameobjects shown in the hierachy it would just show a gameobject named Tree where if expanded all the tree would be under there.

You could place them on the terrain, it is fairly efficient. If you do not, you need a billboard or LOD system.

As for the hierarchy, if they are instantiated and not placed on the terrain do:

GameObject go = (GameObject)Instantiate(tree, pos, rot);
go.transform.parent = parentTransform;