Phase 5 updates

Phase 5 · Slice 18 ·

Off-mesh links

  • Links reach the native side (NavMesh.AddLink/RemoveLink, the NavMeshLink component, API 31): paths search a graph whose nodes are the start, the end and the links' ends, with walks along a navmesh and the links (their length times their cost modifier, or their area's cost) as edges, so they take a link when it's shorter or the only way; corners mark where a link starts.
  • Agents take links as Unity's do (fitted against Unity frame by frame): within 2.25 radii of a free link's start they get on it. On their own they step onto its start and move to its end in half the time walking it would take, then leave at about half speed and accelerate at half their acceleration. Otherwise they wait until CompleteOffMeshLink puts them at the end with the velocity they had. isOnOffMeshLink, currentOffMeshLinkData/nextOffMeshLinkData, remainingDistance (Infinity with a link ahead, the straight distance while the path after a link is found), steeringTarget and one-agent-per-link occupancy follow Unity's.
  • Auto-braking starts within twice the agent's radius of the end (Unity's onset; the deceleration is unchanged), which also holds an agent at a link another is using.
  • The navigation_links scenario: two islands, a one-way NavMeshLink and API links (added, removed), paths over and back, an agent jumping across on its own and one waiting until the script completes the link. 42 scenarios pass in both runs.
  • A navigation_links sample (islands, a pillar and links drawn as arcs, wandering agents), native path tests and an MCP e2e test of an agent crossing a link.
  • Not yet: avoidance, link widths, auto-generated links, deactivated links; the post-jump acceleration is a fitted half (Unity's is about 2% more).
  • Next: agent avoidance, or Sprite (cookie) lights and soft shadows.