title: NavMeshAgent not working at Y positions < 0
body: <p>I have a level, the floors of which are mostly at zero height but some sections that slope down to go below zero. I have a simple script attached to an object to randomly set a destination for the NavMeshAgent. When moving on the zero Y position floors it works fine, but if I place the object in a lower part of the level it doesn't and NavMeshAgent.SetDestination always returns false. </p>
  
  <p>Here's a doodle of the level:</p>
  
  <p><a href="https://i.stack.imgur.com/PGXIu.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/PGXIu.jpg" alt="enter image description here"></a></p>
  
  <p>Here's the code:</p>
  
  <pre><code>void Start () {
      nav = GetComponent&lt;NavMeshAgent&gt;();
      StartCoroutine(Move());
  }
  
  IEnumerator Move()
  {
      while (true)
      {
          Vector3 randomPoint = transform.position + new Vector3(Random.Range(0, roamRadius),
              transform.position.y, Random.Range(0, roamRadius));
  
          Debug.DrawLine(transform.position, randomPoint, Color.green, 0.5f);
  
          Debug.Log(nav.SetDestination(randomPoint));
  
          yield return new WaitForSeconds(changeDirectionSpeed + Random.Range(0, changeDirectionSpeedRandom));
      }
  
  }
  </code></pre>
  
  <p>I've tried checking for the nearest position to my random vector with NavMesh.SamplePosition; a position is always found on the upper level but never on the lower level.</p>
  
  <p>I've used various settings to bake the NavMesh right down to agent radius of 0.1 with no effect. I am certain there is NavMesh in place in the lower level and the agent is placed on it. </p>