Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

NavMeshAgent.nextPosition

public Vector3 nextPosition;

Описание

Получает или задает позицию моделирования агента навигационной сетки.

Вектор положения находится в координатах и ​​единицах мирового пространства.

NextPosition связан с Transform.position. По умолчанию позиция Transform агента navmesh будет соответствовать внутренней позиции симуляции во время вызова функции обновления скрипта. Эту связь можно включать и выключать, задав updatePosition.

Когда updatePosition имеет значение true, Transform.position отражает смоделированное положение, положение преобразования и агента navmesh не синхронизировано, и вы увидите разницу между ними в целом. Когда updatePosition снова включается, Transform.position немедленно перемещается в соответствии с nextPosition.

Установив nextPosition, вы можете напрямую управлять внутренней позицией агента. Агент будет перемещаться к позиции, но ограничен связностью и границами навигационной сетки. Таким образом, это будет полезно только в том случае, если позиции постоянно обновляются и оцениваются.

Смотрите так же: Warp для телепортации агента навигационной сетки.

using UnityEngine; using UnityEngine.AI; using System.Collections; public class ExampleClass : MonoBehaviour { void Start() { // Update the transform position explicitly in the OnAnimatorMove callback GetComponent<NavMeshAgent>().updatePosition = false; } void OnAnimatorMove() { transform.position = GetComponent<NavMeshAgent>().nextPosition; } }

Кроме того, может быть полезно напрямую контролировать позицию агента, особенно если Преобразование GO контролируется чем-то другим, например. аниматор, физика, сценарий или ввод.

using UnityEngine; using UnityEngine.AI; using System.Collections; public class ExampleClass : MonoBehaviour { public bool agentIsControlledByOther; void Update() { var agent = GetComponent<NavMeshAgent>(); agent.updatePosition = !agentIsControlledByOther; if (agentIsControlledByOther) { GetComponent<NavMeshAgent>().nextPosition = transform.position; } } }

Смотрите так же: Переместить для перемещения агента с относительной позицией.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3