Usage example - Nav3D Doc

Docy Child

Usage example

The following is an example of using the Path object to find the path from A to B.

				
					using Nav3D.API;
using System;
using System.Linq;
using UnityEngine;

class YourGameScenario : MonoBehaviour
{
    #region Attributes

        Vector3[] m_FoundPath;

        #endregion

        #region Unity events

        private void Start()
        {
            Nav3DManager.OnNav3DInit += () =>
            {
                Vector3 a = new Vector3(-10, -10, -10);
                Vector3 b = new Vector3(10, 10, 10);

                FindPath(a, b, PrintPath);
            };
        }

        private void OnDrawGizmos()
        {
            if (!Application.isPlaying || !enabled)
                return;

            if (m_FoundPath != null && m_FoundPath.Any())
            {
                for (int i = 0; i < m_FoundPath.Length - 1; i++)
                    Gizmos.DrawLine(m_FoundPath[i], m_FoundPath[i + 1]);
            }
        }

        #endregion

        #region Service methods

        //your method for pathfinding from A to B
        void FindPath(Vector3 _A, Vector3 _B, Action<Vector3[]> _OnPathFound)
        {
            //create Path instance
            Path path = Nav3DPathfindingManager.PrefetchPath(_A, _B);

            //perform pathfinding from _A to _B
            path.UpdatePath(_OnSuccess: () =>
            {
                //notify that path was found
                Debug.Log("Path successfully found!");

                //invoke callback
                _OnPathFound(path.Trajectory);

                //finish work with Path instance
                path.Dispose();
            });
        }

        void PrintPath(Vector3[] _Path)
        {
            m_FoundPath = _Path;

            Debug.Log($"Path points: {string.Join(", ", m_FoundPath)}");
        }

        #endregion
}
				
			

Agent log

Here you can copy the contents of the agent log to the clipboard by clicking the...

Debug drawing

In this section, you can visualize the agent and his nearest environment. This s...

Creating and configuring an agent description from code

All Nav3DAgentDescription parameters configured in the description inspector c...

Nav3DManager

Nav3DManager is a helper static class. Can be useful for checking whether Nav3D ...

Nav3DInitializer

To use Nav3D in playmode, you need to initialize it. The Nav3DInitializer compon...

Nav3DObstacleLoader

To use the possibility of pre-baking obstacles on the scene in editor mode and t...

Nav3DObstacle

To manage obstacles on the scene, the Nav3DObstacle component is designed. Attac...

Obstacle combinations

We will call obstacles with the selected processing mode “Runtime” as runtim...

Operations with obstacles

Regardless of the obstacle processing mode, the processing procedure consists of...

Deeper dive into obstacles

As already described above, in order for an obstacle to be taken into account du...

Nav3DAgent : Debug

The Nav3DAgent has an inspector that provides several useful functions to help w...

Nav3DAgent

As mentioned above, you can use the Nav3DAgent script as a component for your ga...

Chat Icon Close Icon
en_USEnglish