[This is preliminary documentation and is subject to change.]

CAINav is a navigation system for use with .NET and Unity Pro on Windows. It provides navigation mesh generation, pathfinding, and local steering functionality.

At the core of CAINav is the well regarded Recast Navigation by Mikko Mononen. This library is mostly about adapting Recast Navigation for use with .NET and Unity. So most of the core features are courtesy of Mikko's work.

Caution:

This project is no longer actively maintained.

This is an alpha release meant for use by early adopters.

Not all features have undergone rigorous testing. Some features have little documentation. Expect frequent changes to the API and potentially breaking changed to Unity components. E.g. Unity components may need to be deleted and re-created when migrating to a new release.

Download CAINav (Zip)

Navigation Mesh Generation

  • Generates polygon meshes representing the traversable surface of arbitrary source geometry.
  • Core features are independent of the pathfinding and steering components, providing more options for work flow and distribution.
  • A highly extendable build process suitable for creating complex navigation meshes at design time.
  • Unity extensions that provide designer (non-coder) friendly build processes.

Pathfinding

  • A* and Dijsktra searches.
  • Various local environment queries for fast, no search movement.
  • Easy management of path corridors.
  • Custom connections between different areas of the mesh for non-standard movement. (Off-mesh connections.)
  • The ability to enable/disable polygons on a per agent basis. (Polygon filtering.)
  • The ability to define polygon traversal costs on a per agent basis.
  • Tiling of meshes to efficiently deal with large areas.

Local Steering

  • Local steering/collision avoidance for up to 20 agents.
  • Independent agents that respond to the presence of other agents.
  • Following behavior and moving as a group.

Miscellany

  • Core features available for use with Unity Pro and .NET-only implemenations.
  • Many ease-of-use extensions for Unity.
  • Unity plug-in deployment restrictions apply. E.g. Can't be deployed to the Unity web player.
  • CAINav is not officially supported for use in the Unity Editor on the Mac OS, or at runtime on any platform other than Windows. This is not a technical limitation, but is due to the lack of non-Windows systems for builds and testing.
  • Does not support temporary obstacles.

Sample Pack

The Sample Pack contains demos that will let you play around with various the navigation features. Simply extract the contents and run the demos. They provides a lot of nice visualizations.

Note:

Kaspersky Internet Security may report a PDM.Keylogger security warning when Feature Explorer is run. Kaspersky must not like the way Unity detects keyboard input, because I certainly haven't included any viruses. Honest...really...

The Sample Pack pre-compiled demos have been tested on 64-bit Windows 7 and 32-bit Windows Vista.

Sample Pack (Download/Zip)