/// <summary>
/// 检测物体是否在可行走面上
/// </summary>
/// <param name="pos"></param> 位置
/// <param name="radius"></param> 物体的半径
/// <returns></returns>
public static bool SamplePosition(Vector3 pos, float radius)
{
NavMeshHit hit;
if (NavMesh.SamplePosition(pos, out hit, radius, NavMesh.AllAreas))
return true;
else
return false;
}
/// <summary>
/// 检测目标位置是否可达
/// </summary>
public static NavMeshPath path = new NavMeshPath();
public static bool CanReachPosition(Vector3 sourcePosition, Vector3 targetPosition)
{
if (NavMesh.CalculatePath(sourcePosition, targetPosition, NavMesh.AllAreas, path))
{
if (path.status == NavMeshPathStatus.PathPartial)
return false;
else
return true;
}
return false;
}