/// <summary>
/// </summary>
/// <param name="terrainData"></param>
/// <param name="position">Location in the XZ plane (not the XY plane!)</param>
/// <param name="sphereRadius"></param>
/// <returns></returns>
private static Vector3 AdjustSpawnPositionForTerrainShape(TerrainData terrainData, Vector2 position, float sphereRadius)
{
var height = terrainData.GetInterpolatedHeight(position.x, position.y);
var normal = terrainData.GetInterpolatedNormal(position.x, position.y);
var offsetAlongNormal = normal * sphereRadius;
var positionOnTerrain = new Vector3(position.x, height, position.y);
return positionOnTerrain + offsetAlongNormal;
}