SetDestination
- Oyun Geliştirme kursu
- İleri seviye
- Ders 39/71
- 4 dk
SetDestination ile hedefe yürümeyi öğrenirsin.
SetDestination ile Hedefe Yönelme
Bir ajanın belirli bir 3D noktaya doğru yola çıkması için agent.SetDestination(targetPosition) çağrılır. Agent anında en uygun rotayı hesaplar ve hareket etmeye başlar.
using UnityEngine.AI;
public class Chaser : MonoBehaviour {
public Transform target;
private NavMeshAgent agent;
void Update() {
agent.SetDestination(target.position);
}
}Hedef hareket ettikçe (örneğin koşan bir oyuncu), her karede veya aralıklarla hedef pozisyonu yenilenerek takip sürdürülür.
Hedefe Varış ve remainingDistance
Ajanın hedefe ulaşıp ulaşmadığını anlamak için agent.remainingDistance özelliği stoppingDistance ile karşılaştırılır.
if (!agent.pathPending && agent.remainingDistance <= agent.stoppingDistance) {
// Hedefe varildi
Debug.Log("Hedefe ulasildi");
}agent.pathPending kontrolü, rotanın arka planda henüz hesaplanma aşamasında olup olmadığını kontrol ederek erken tetiklemeleri önler.
Uygulama Hedef mesafe denetimi
Bir Start metodu tanımla. İçinde float kalanMesafe = 0.5f; tanımla ve konsola "Kalan mesafe: " + kalanMesafe yazdır.
Başlangıç kodu
using UnityEngine;
public class DestinationTester : MonoBehaviour
{
// Start icinde kalanMesafe tanimla ve yazdir
}Örnek çözüm
using UnityEngine;
public class DestinationTester : MonoBehaviour
{
void Start()
{
float kalanMesafe = 0.5f;
Debug.Log("Kalan mesafe: " + kalanMesafe);
}
}Beklenen çıktı
Kalan mesafe: 0.5
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 NavMeshAgent bileşenine yeni bir 3D hedef noktası vererek hareketi başlatan metot hangisidir?
- agent.SetDestination(target) Doğru cevap
- agent.MoveInstantly(target)
- agent.TeleportTo(target)
- agent.JumpToPath(target)
Açıklama: SetDestination metodu, parametre olarak verilen Vector3 konumuna doğru NavMesh üzerinden rota hesaplar ve yürümeyi başlatır.
2 Hedef pozisyonu ayarla
agent.____(target.position);
agent.SetDestination(target.position);
Açıklama: Ajanın hedef koordinatını belirlemek için 'SetDestination' metodu çağrılır.
3 Navigasyon takip özellikleri
| Kavram | Anlamı |
|---|---|
SetDestination |
Hedef belirleyip rotayı hesaplar |
remainingDistance |
Hedefe kalan anlık mesafe |
pathPending |
Rotanın hesaplanma aşamasında olması |
hasPath |
Aktif bir rotanın olup olmadığı |