Nav3DAgent - Nav3D Doc

Docy Child

Nav3DAgent

Как упоминалось выше, вы можете использовать скрипт Nav3DAgent в качестве компонента для вашего игрового объекта и получить к нему доступ через GetComponent() или вы можете создать класс-наследник, который лично мы считаем гораздо более удобным.

Для работы с Nav3DAgent были реализованы следующие публичые методы:
  • Применяет описание к вашему агенту.
				
					public void SetDescription(Nav3DAgentDescription _Description)
				
			
  • Команда двигаться к точке. Любая действующая команда будет прервана, агент начнет движение к точке, в соответствии с параметрами его описания.
				
					public void MoveTo(Vector3 _Point, Action _OnReach = null, Action<PathfindingError> _OnPathfindingFail = null)
				
			
  • Добавить точку следования в очередь. Таким образом может быть добавлено сколько угодно точек следования. Если агент выполняет команду FollowTarget, то она прервется и он начинает выполнять команду следование к точке.
				
					public void MoveToEnqueue(Vector3 _Point, Action _OnReach = null, Action<PathfindingError> _OnPathfindingFail = null)
				
			
  • Команда преследовать движущийся Transform.

				
					public void FollowTarget(
            Transform _Target,
            float _OffsetToleranceUpdate,
            float _DistToReach = 0,
            Action _OnReach = null,
            Action _OnCancel = null,
            Action<PathfindingError> _OnPathfindingFail = null
        )
				
			
  • Transform _Target – Transform, который необходимо преследовать.
  • float _OffsetToleranceUpdate – величина минимального смещения цели, которое приведет к обновлению пути к цели. Если ваш агент имеет параметр Motion Navigation Type описания установленным в значение GLOBAL, или GLOBAL_AND_LOCAL, то каждый раз при смещении преследуемого Transform более чем на _OffsetToleranceUpdate произойдет обновление пути.
  • If your agent has the Motion Navigation Type of the description set to GLOBAL, or GLOBAL_AND_LOCAL, then each time the pursued Transform is offset by more than _OffsetToleranceUpdate , it will cause the path to be recalculated.
  • float _DistToReach – расстояние до цели, приблизившись на которое цель будет считаться достигнутой. Хотим заметить, что в случае когда агенту приходится искать глобальный путь, цель может никогда не быть достигнутой, поскольку достигнув конца пути может оказаться, что цель за прошедшее время сдвинулась. Таким образом условие совпадения координат преследуемой цели и агента может быть труднодостижимым.
  • Action _OnReach – Делегат, который будет выполнен, когда цель будет успешно достигнута.
  • Action _OnCancel – делегат, выполняемый в случае, если ссылка на преследуемый Transform стала null, либо missing.
  • Прерывает выполнение текущей команды.
				
					public void Stop()
				
			
  • Позволяет получить список агентов внутри радиуса _Radius от агента. Вызов этого метода по событию Update, может негативно сказаться на производительности, поэтому рекомендуется не вызывать его слишком часто (например, нескольких раз в секунду должно быть достаточно для любых игровых сценариев).
				
					public List<Nav3DAgent> GetAgentsInRadius(float _Radius, Predicate<Nav3DAgent> _Predicate = null)
				
			
  • Визуализирует агента с помощью Gizmos. Может быть полезно для отладки в Editor
				
					public void Visualize(bool _DrawRadius = true, bool _DrawPath = true, bool _DrawVelocities = true)
				
			

Вы можете найти примеры использования Nav 3D Agent в демонстрационных сценах, расположенных в папке Demo ресурса.

Agent log

In the second section, you can get the contents of the agent log by clicking on ...

Debug drawing

In the first section, you can visualize the agent and his nearest environment. T...

Создание и настройка описания агента из кода

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...

Сочетания препятствий

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

Операции с препятствиями

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

Немного глубже о препятствиях

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

Nav3DAgent : Debug

The Nav3DAgent and its inheritors have an inspector that provides several useful...

Nav3DAgent

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

Chat Icon Close Icon
ru_RURussian