• G#

NavMeshAgent.nextPosition

Sarankan perubahan

Success!

Terima kasih untuk membantu kami meningkatkan kualitas Dokumentasi Unity. Meskipun kami tidak dapat menerima semua pengajuan, kami membaca setiap perubahan yang disarankan dari pengguna kami dan akan melakukan pembaruan di mana berlaku.

Close

Penjelasan gagal

Untuk beberapa alasan perubahan yang disarankan Anda tidak dapat diajukan. Silahkan <a>try lagi</a> dalam beberapa menit. Dan terima kasih untuk mengambil waktu untuk membantu kami meningkatkan kualitas Dokumentasi Unity.

Close

Cancel

publik Vektor3 nextPosition;

Description

Dapat atau mengatur posisi simulasi agen navmesh.

Posisi vektor berada dalam koordinasi ruang dunia dan unit.

The nextPosition digabungkan menjadi Transform.position. Dalam kasus default posisi Transform agen navmesh akan mencocokkan posisi simulasi internal pada saat fungsi Pembaruan skrip disebut. Kopling ini dapat dimatikan dan dimatikan dengan pengaturan updatePosition.

Ketika updatePosition benar, Transform.position mencerminkan posisi simulasi, ketika salah posisi transformasi dan agen navmesh tidak disinkronkan, dan Anda akan melihat perbedaan antara dua secara umum. Ketika updatePosition dimatikan kembali, Transform.position akan segera bergerak untuk mencocokkan skema berikutnya.

Dengan mengatur nextPosition Anda dapat langsung mengontrol di mana posisi agen internal harus. Agen akan dipindahkan ke posisi, tetapi dibatasi oleh konektivitas dan batas navmesh. Seperti itu akan berguna hanya jika posisi terus diperbarui dan dinilai. Lihat Juga: Warp untuk teleporting agen 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; } }

Selain itu dapat berguna untuk mengontrol posisi agen secara langsung - terutama jika transformasi GO dikendalikan oleh sesuatu yang lain - misalnya animator, fisika, skrip atau input.

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

Lihat Juga: Move untuk memindahkan agen dengan posisi relatif.