Hello,
my Problem is that I downloaded a low poly Asset and the Ground has differences in height (for example at x=34 and z=20, y=2 and at x=50 and z=12, y=5). Now I want to spawn random Objects on the Ground (trees, mushrooms, etc.), but my problem is the difference in height which the Ground has. The pivot of the game objects/Prefabs are at the bottom.
Thanks in advance. 
If you are using Unity’s terrain feature, calling Terrain.activeterrain.SampleHeight() will give you the height of the terrain pretty easily. If you are just using a normal mesh, make sure it has a mesh collider and you can Raycast down to get the height of the mesh at any position.
public LayerMask groundLayer;
public float DetectGroundHeight(Vector3 position){
position.y = 100; //Make sure this value is higher that your tallest bit of ground
RaycastHit hit = new RaycastHit();
Ray ray = new Ray(position, Vector3.down);
if(Physics.Raycast(ray, out hit, 1000, groundLayer)){
return hit.point;
}
//If no hit then you have attempted to measure the height somewhere off the mesh
return Mathf.NegativeInfinity;
}
Hello. There.
I dont know if there is any other solution. But you can create a “ground detector” object. (An empty object with trigger collider and script).
Then, at the X and Z coords where you want to spawn a tree, start moving the detector down, once it collides with the ground, you know the height.