I'm building up taking cover system for third person shooter using navmesh. My idea is to collect all corners from the navmesh, and cast NavMesh.Raycast from each corners to check those are safe or not. Collecting vertices from navmesh succeeded like this: Code (CSharp): var navMesh = NavMesh.CalculateTriangulation(); Vector3 vertices = navMesh.vertices; But the problem is, this array includes vertices "inside" polygons. Shooting NavMesh.Raycast from inside vertices always returns true, so NPC judges those are "safe" spots, and tries to run into the wall. Is there any way to exclude those inside vertices from calculation?