CodeBlanks Logo Icon CodeBlanks

SetDestination

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

Player.cs
using UnityEngine;

public class DestinationTester : MonoBehaviour
{
    // Start icinde kalanMesafe tanimla ve yazdir
}

Örnek çözüm

Player.cs
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

Soru
agent.____(target.position);
Cevap
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ığı

İleri seviye bölümündeki tüm dersler