Experimental AI Navigation Package

Experimental package now available from the package manager!
An experimental package allows us to share early development with the community, but please keep in mind this is meant to collect your feedback while we progress toward a fully supported released functionality. As such experimental packages should not be used in production until they reach their Released state.

Introduction
The AI Navigation package provides a workflow for building and using NavMeshes at runtime and at edit time through components.

To get started with AI Navigation, we recommend that you checkout the Documentation.

High-level features summary
It allows configuring NavMeshes for different types of agents. Updating NavMesh topology at runtime. Creating more complex configurations, via NavMeshLinks and modifiers. And creating more flexible projects by leveraging NavMeshes in prefabs.

Current state
This package is based on NavMeshComponents project that was available on Unity public GitHub. The experimental AI Navigation Package is still under development, and some API or data structures may change in the future.

What’s next?
AI Navigation is expected to become the new default workflow for Navigation in Unity. Before being able to sunset the legacy workflow, some missing features (like HeightMesh) need to be reimplemented in this component-based system. A special attention will also be given to the user experience, to facilitate the setting of navigation in a project and helping its debugging.

It is our intention to deliver those functionalities as a fully supported increment of released versions you can use in production. So our first goal is really to consolidate the existing experimental functionalities and fully support them for production as soon as possible.

More information about the full roadmap for this product will be communicated later.

Installation

  • Download Unity 2021.1 or newer through the Hub.
  • Create or open a Unity project.
  • Go to Window > Package Manager.
  • Follow “Adding a registry package by name” instructions and add “com.unity.ai.navigation”

Sharing feedback
This forum is the best place to open discussions and ask questions. When you encounter a bug, please use the Unity Bug Reporter in the Unity Editor, accessible via Help > Report a Bug. Include “AI Navigation” in the title to help our staff triage things appropriately!

For more details on how to report a bug, please visit this page…

14 Likes

Will this also improve the DOTS NavMeshQuery api? Thats been experimental with 2018, and you have to jump through many hoops to get useful results out of it.

6 Likes

Glad to see that Navmesh Components are finally making the transition to a Unity Package!

We have been working with the navmesh components for quite a while now and I have a few things I want to address right away:

  • Please expose the debug building & visualization features by default on the NavmeshSurface component. It helps a lot when trying to figure out why a specific corner of the navmesh doesn’t come out the way you want it to. But not a lot of users know the debug data/views exist since it is hidden behind a few different APIs.
  • Please take a look at the underlying NavMeshBuilder again, there are still issues to be solved there. I recently reported this issue regarding navmesh modifiers (detailed info in this forum post ).
  • Add the possibilty to use arbitrary meshes as volume modifiers, the current restriction to boxes only is severely limiting and caused us to use countless workarounds to block navmesh inside of pre-built geometry.
  • If at all possible, please move the NavMeshBuilder out of black-box land into the package! It would go a long way to be able to see what is happening and being able to modify it if needed.

Thank you

9 Likes

Feature Request

Make MavMeshPath include offmesh links rather than just Vector3’s that way offmeshlinks can be usable.

My last project I had to spatially search to try and match vector3’s to offmesh links, its slow and unreliable :frowning:

1 Like

Do you plan to add some feature to get rid of disconnected NavMesh islands? Something what NavMesh Cleaner asset does in current system.

3 Likes

The Unity 2021.2 beta is available for feedback unity blog mentions:
"Editor: Scene View tool overlays, quality-of-life improvements, Editor performance optimizations, a beta of the Apple Silicon Editor, the AI Navigation experimental package, feature sets"
But still I cannot find the AI Navigation package in the package manage in Unity Registry list. Not even if I enable the experimental packages.
Does this means that we still have to add the AI Navigation package by name, as you suggested even in 2021.2 too?
But then why the blog mentions that it is available in the editor?

The part of the blog post you quoted says “the AI Navigation experimental package”.
If I’m not wrong, experimental means “hidden and should be added by name”, preview means “visible if preview packages are enabled”.
It seems to me that it is normal to still not see the package in the package manager even though the blog post mentioned it.

2 Likes

7276603--879193--upload_2021-6-27_15-22-36.png
I’m confused

Plus, please do not duplicate your post.

Thanks for your feedback!

Also, notes that using the roadmap website for feature requests and voting for what is more important to you, could also help us to prioritize our work:
https://unity.com/roadmap/unity-platform/navigation-game-ai

1 Like

Until the package is verified it cannot be displayed in the package manager, and it will be necessary to add it by name.

The current version of the package is compatible with earlier version than 2021.2, it was just announced in this version because it match the release of the experimental package.
Also keep in mind, that future planned improvement of the package will need update in the core API and will require to increase the minimum compatible version of the package.

2 Likes

It is an undocumented feature, but you can also use “Add package from git URL” with a package id (“com.unity.ai.navigation”) in 2020.

“Add package by name” was added to make that explicit in 2021.

3 Likes

Do I understand correctly, that the current “AI Navigation Package” at current state is exactly the same like the NavMeshComponents Addon, available via Git? (GitHub - Unity-Technologies/NavMeshComponents: High Level API Components for Runtime NavMesh Building)

Which means: If I’m using the old NavMeshComponents - there is no need to update/change scripts for this “AI Navigation Package” at this point? (later, when the planned features will be implemented, then of course an update makes sense)

It takes forever to install. How much is the size of the package?

Currently the only difference between the Git version and the package are a few fixes. You can check the Changelog to know what have changed:
http://docs.unity3d.com/Packages/com.unity.ai.navigation@1.0/changelog/CHANGELOG.html

It should only takes a few seconds to install (the package size is 3MB). Maybe you should reopen Unity and retry.

Nice, thanks for the link! There is indeed already some movement on the fixing area. Looking forward for future major steps towards new and improved functionality! :wink:

Do you plan to support 2D navmeshes any time soon…?

Is there anyway to add this package to the 2019.4 LTS Package Manager?

Is this package opensource? Or will it?