Nav3DObstacleManager

Nav3DObstacleManager

Nav3DObstacleManager был внедрен для работы с препятствиями. Его общедоступными методами являются:

  • public static void AddObstacle(Transform _Obstacle, bool _FullTraversal = true, Action<ObstacleAdditionResult> _OnSuccess = null) — обработать (зарегистрировать) препятствие.
  • public static void AddObstacleSet(List _Obstacles, bool _FullTraversal = true, Action<ObstacleAdditionResult> _OnSuccess = null) — обработайте (зарегистрируйте) список препятствий.
  • public static void RemoveObstacle(Transform _Obstacle, Action _OnSuccess = null) — удалите препятствие из навигационного графика.
  • public static void RemoveObstacleSet(List _ObstacleSet, Action _OnSuccess = null) — удалите список препятствий из навигационного графика.
  • public static void UpdateObstacle(Transform _Obstacle, bool _FullTraversal = true, Action<ObstacleAdditionResult> _OnSuccess = null) — обновите препятствие на навигационном графике.
  • public static void UpdateObstacleSet(List _ObstacleSet, bool _FullTraversal = true, Action<ObstacleAdditionResult> _OnSuccess = null) — обновите список препятствий на навигационном графике.
  • public static Path PrefetchPath(Vector3 _PointA, Vector3 _PointB) — получите объект Path, чтобы найти путь от _PointA до _PointB, подробности см. в разделе Path section

Объяснение значения некоторых общих параметров:

  • bool _FullTraversal — необходимо ли применять операцию ко всей transform-иерархии объекта, если нет, то операция будет применена только к самому объекту (к набору объектов AddObstacleSet, RemoveObstacleSet и UpdateObstacleSet).
  • Action _OnSuccess<ObstacleAdditionResult> — действие после успешного завершения операции. Аргумент типа Obstacle Addition Resultхранит временные характеристики выполненной обработки препятствия.
public struct ObstacleAdditionResult
{
    #region Properties

    //Total processing time for an obstacle.
    public TimeSpan TotalProcessingTime { get; private set; }

    //Octree building time.
    public TimeSpan OctreeBulidTime { get; private set; }

    //Navigation graph building time by octree.
    public TimeSpan GraphBuildTime { get; private set; }

    #endregion
}