sourcePosition | Asal-usul sinar. |
targetPosition | Ujung sinar. |
hit | Memegang sifat lokasi penghasil sinar. |
Login Login | Masker bitfield menentukan daerah NavMesh yang dapat dilewatkan ketika menginjak sinar. |
Sitemap Benar jika sinar diakhiri sebelum mencapai posisi target. Jika tidak kembali palsu.bool True if the ray is terminated before reaching target position. Otherwise returns false.
Melacak garis antara dua poin di NavMesh.
Titik sumber dan tujuan pertama dipetakan di NavMesh, kemudian sinar dilacak dari titik sumber menuju target. Jika sinar hits batas NavMesh, fungsi kembali benar dan data hit diisi. Jika jalan dari sumber ke target tidak terhalang, fungsi kembali palsu.
Jika sinarcast berakhir di tepi luar, hit.mask
adalah 0; jika tidak mengandung topeng daerah dari poligon pemblokir.
Fungsi ini dapat digunakan untuk memeriksa apakah agen dapat berjalan tidak terhalang antara dua poin di NavMesh. Contohnya jika karakter memiliki gerakan dodge evasif yang membutuhkan ruang, Anda dapat menembak sinar dari lokasi karakter ke beberapa arah untuk menemukan tempat di mana karakter dapat menghindari.
NavMesh.Raycast berbeda dari cor sinar fisika karena bekerja pada "2.5D", di NavMesh. Perbedaan untuk raycast fisika adalah versi NavMesh dapat mendeteksi semua jenis obstruksi navigasi, seperti lubang di tanah, dan itu juga dapat memanjat lereng, jika daerahnya bisa dinavigasi.
// TargetReachable using UnityEngine; using UnityEngine.AI;
public class TargetReachable : MonoBehaviour { public Transform target; private NavMeshHit hit; private bool blocked = false;
void Update() { blocked = NavMesh.Raycast(transform.position, target.position, out hit, NavMesh.AllAreas); Debug.DrawLine(transform.position, target.position, blocked ? Color.red : Color.green);
if (blocked) Debug.DrawRay(hit.position, Vector3.up, Color.red); } }
Jika Anda mencari untuk menemukan titik terdekat pada NavMesh Anda harus menggunakan raycast fisika untuk menemukan titik di dunia, lihat contoh Klik Point.
sourcePosition | Asal-usul sinar. |
targetPosition | Ujung sinar. |
hit | Memegang sifat lokasi penghasil sinar. |
filter | Filter yang menentukan daerah NavMesh dapat dilewatkan ketika menginjak sinar. |
Sitemap Benar jika sinar diakhiri sebelum mencapai posisi target. Jika tidak kembali palsu.bool True if the ray is terminated before reaching target position. Otherwise returns false.
Melacak garis antara dua posisi di NavMesh, tunduk pada batasan yang ditentukan oleh argumen filter.
Garis diakhiri di tepi luar atau area yang tidak dapat dilewati.