[FREE KEYS!!!][RELEASED v1.4.3] Nav3D - easy pathfinding in 3D space.

Hi there!

This forum thread is dedicated to the Nav3D (formerly Pathfinder 3D) asset.
Nav3D gives you the ability to perform pathfinding and movement in 3D space for game units.

Here is an example of game units for which Nav3D can be applied:

  • Aircrafts
  • Drones
  • Missles
  • Birds
  • Fishes

Here are the main features of our solution:

  • Pathfinding in 3D space based on A*.
  • Optimal navigation graph based on octrees (with the possibility of pre-baking).
  • Local avoidance mechanism based on ORCA.
  • Various configuration of game agents. The characteristics and behavior of agents can be fine-tuned for any specific game conditions. On the game scene, agents of different sizes, with different behavior settings, can reciprocally interact.
  • Multi-threaded execution of main complex algorithms.
  • Convenient API for integration into your solutions.

You can learn more about Nav3D on the website. Here you will also find a demos and documentation with code examples.
Nav3D on Asset store.


For all questions, write to support@softbrix.studio



Looks nice :)

how do you feed the system with obstacles? Physics colliders?

Yes, so it is implemented :)


What is the speed like? calculating a route. Like in one if the example images here?

The speed of calculating the route depends on the size of the space and the degree of detail in which the search is performed.
The examples shown on the website show it is slower than it really is.
In any case, there is a choice between the search speed and the quality of the route.

just within a order of magnitude? is it 1 ms or 100 for a path like this? Any problem to split over frames? I assume it needs to be in main thread as you access physics.

The search algorithm is implemented as a coroutine. So measuring the speed of search is an incorrect question. Delays between frames are insignificant when the search parameters are correctly configured.

If the search is too difficult, the delay will be visible.

But we have implemented a state machine, this allows you to mask the search process, for example by adding some wait animation.

This looks just like what I've been looking for. Impressive work.

Question: In my game, I have flying objects that have attached rigidbodies. I move them around using physics forces, rather than just changing the transform. (That is, using PID controllers). With Unity's NavMesh system, it's possible to just use the data provided by an Agent to get a path, without using the Agent to actually move the gameobject around. Does your system do something similar? That is, can I use your package to determine the path to take, while handling the movement on my own?

Hi, Dan!
Of course, this possibility is present. You can only get the path without moving along it. We can also help you with setting up a package for this purpose.

Is this compatible with Unity 2018.1? Can this be used for swimming NPCs? This still does not support colliders?


1)The asset has been assembled and tested on Unity v 2017.1.1. So, there is no reason to believe that there may be problems when used with version 2018.1. In any case, we'll help you to solve any problems, if it appear.

2)What do you mean by swimming NPCs? If this is NPCs, for which the movement is planned in space, then yes, the asset is suitable for this.

3)At the moment asset support any obstacles, provided by mesh collider, or mesh with special tags. More details can be found in the documentation for the Asset on our website - https://gracefulalgs.com/portfolio/pathfinder/

Thanks for the reply. Yup, that's NPCs (Non-Player Characters). Planning to use it for animals/creatures. Can the GameObjects that has the Pursuer script have colliders? Also, can the distance between an obstacle and a Pursuer be adjusted? I noticed in the EXE demo that the planes are very close to the mountains and some move jerkily.

Indeed, according to our idea, objects that have a component of Pursuer can have colliders. And they should not be regarded as obstacles in finding a way. But recently one of our users encountered some problem. More details can be found in the last review on the page of our Asset in Assetstore. Therefore, I can not fully guarantee the fulfillment of this requirement. But I can assure you that the next update will solve the problem.

Concerning the jerking of the pursuers and the approaching of the passage to the obstacles - yes, such a problem exists, and we also reflect on it. We hope that we will manage to solve it. Now the problem of approaching obstacles can be solved by increasing the dimension of cells in the search graph. I suggest you do not hurry with the purchase of the asset and wait for the next update (it is expected by early August). Then you can try new demos, which will be published on our website.

1 Like

Thank you very much for your honesty. Will just watch this asset for updates. All the best to you and your team! :-)


I am attempting to use this asset in UWP and it looks like it won't work at all due to the asset using System.Threading, of which UWP doesn't have access to. Is there any way around this?

Hello, James! In the update to version 0.3 we have implemented several code elements that should solve this problem by providing Windows.System.Threading namespace(which supports at UWP) instead of System.Treading. Unfortunately, we can not guarantee working capacity, because we do not have the opportunity to test our asset on this platform. (This update is currently not released, but is pending review at Asset Store.)

I am having a problem.
I need to restart SpaceManager, but I'am not able to do so. The closest I came is this:

public void RestartImpl()
markrestart = true;
bool markrestart;
void Update()
if (markrestart)
if (!isPrimaryProcessingCompleted) return;
markrestart = false;
isPrimaryProcessingCompleted = false;


But it doest work always. I guess some async thread issue?

Hi, Ivan!
Could you describe your purpose in more details? Maybe, we could suggest a way for solving this problem.
What is mean "restart SpaceManager"? Your want to reinitialise class instance, or just clear spatial graph (occupied cells dictionary), or abort obstacles handeling process and the restart it?

I have this situation:
on scene, I have several "waypoints gameobject": Waypoint1, Waypoint2, Waypoint3.
Each waypoint contains several obstacles and other game objects.
On scene start, waypoint1 is active.
When player finishes with waypoint1, game activates waypoint2 and deactivates waypoint1.

Only obstacles in Waypoint1 are detected, and nothing happens when Waypoint2 is activated.

I need to "rescan" scene when game activates waypoint2.

Also,similar problem, if I move obstacle around, how to synchronize with SpaceManager?

Tried this, doesnt work:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NotifySpaceManager : MonoBehaviour
    // Start is called before the first frame update
    void Start()
        var sm = GameObject.Find("SpaceManagerGO").GetComponent<SpaceManager>();