Navmesh Generation and Pathfinding: CAINav v0.3.0

There are a good number of pathfinding solutions coming out for Unity, which is wonderful. Here is another…

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

The code is available under a liberal open source license, but CAINav is restricted to use with Unity Pro because it is based directly on the Recast Navigation code base. So it operates as a Unity plug-in. CAINav provides direct access to almost all of Recast Navigation’s features and includes various Unity extensions to make use with Unity easier.

CAINav is generally meant for use by advanced users. (I.e. A team that includes an AI developer.) Navigation mesh generation is designer friendly. But pathfinding requires coding.

The download site includes a sample pack that demonstrates various features.

All major functionality is well tested, but CAINav will stay in alpha until its API stabilizes.

Project Home
Documentation

Code
Downloads
Discussion Group

My Blog

Enjoy,

Steve

nice work,thanks for sharing this!

CAINav v0.4.0 has been released. Here is a summary of the enhancements:

  • Conversion from float[3] arrays to Vector3 structures.
  • Easy tiled navigation meshes. (I.e. Large area meshes.)
  • Area and flag assignment during the build process.
  • Support for off-mesh connections in the build process.
  • Support for background/multi-threaded builds.
  • A standard end-to-end build process that is highly extendable.
  • For Unity users, almost all advanced build features are available to non-coders. (I.e. Scene designers.)
  • A new API for the PathCorridor class. (Easier to use with better performance.)
  • An upgrade to Recast Navigation r338.

The documentation contains updated ‘Getting Started’ sections that introduce most of the new features.

Thanks,Steve,Can you give me some example script for animating person on pathfinding?

i just looked a bit, it seems like a nice solution but steering seems a bit problematic.
especially in narrow corridors, agents push back each other at corners even there are half a dozen agents.
reciprocal collision avoidance techniques are populer nowadays, you may consider implementing them.

Such a system for Unity Free would be cool! Yep, there are nice things like “Rain One” or “xaitMap”, but these costs too much…

Sorry all, I had my notifications set up incorrectly for this thread.

Animation during movement is usually part of the locomotion system and is very implementation specific. I don’t have any simple examples I can provide. However, it is isn’t too difficult if you are using the Locomotion System example from the Unity site.

Take a look at the Sample Pack. The Crowd Demo includes code for agent movement. If the agent being moved has the locomotion system components attached, then animation pretty much ‘just works’ since the locomotion system automatically tracks agent velocity and applies the appropriate animation blends.

The crowd manager component is based on a form of RVO and most issue’s can be resolved by adjusting the manager’s quality settings. But I do have to say that if you have slow moving agents, then it will be necessary to add special handling for agents that happen to meet at corners. (Slow agents sometimes can’t get up enough velocity delta to get around each other.)

Sorry, but CAINav will always be based on plugin’s. Too much cost to convert it to 100% C# and keep it in sync with Recast Navigation.