Unity 6.3
0 онлайн 80 гостей 3 в системе
Вход

NavMeshAgent.nextPosition

Declaration

public Vector3 nextPosition;

Описание

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

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

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

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

Задавая nextPosition, вы напрямую управляете тем, где должна находиться внутренняя позиция агента. Агент будет смещён к этой позиции, но с учётом связности и границ навигационной сетки. Поэтому приём полезен только при непрерывном обновлении и оценке позиций. Дополнительные ресурсы: Warp для телепортации агента navmesh.

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 контролируется чем-то другим — e.g. аниматор, физика, скрипт или ввод.

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; } } }

Дополнительные ресурсы: Move для перемещения агента с относительной позицией.