navMeshAgent | Unity
Ответы (1 шт):
Автор решения: luvjungle
→ Ссылка
Ваша задача решена прямо в документации Unity
https://docs.unity3d.com/ScriptReference/AI.NavMesh.SamplePosition.html
Меня конечно смущают тут некоторые вещи, например использование дистанции 1.0f в методе NavMesh.SamplePosition, мне кажется там логичнее range / 2f
bool RandomPoint(Vector3 center, float range, out Vector3 result)
{
for (int i = 0; i < 30; i++)
{
Vector3 randomPoint = center + Random.insideUnitSphere * range;
NavMeshHit hit;
if (NavMesh.SamplePosition(randomPoint, out hit, 1.0f, NavMesh.AllAreas))
{
result = hit.position;
return true;
}
}
result = Vector3.zero;
return false;
}
