CodeBlanks Logo Icon CodeBlanks

NavMeshAgent

NavMeshAgent bileşeni ile düşman hareketini öğrenirsin.

NavMeshAgent Bileşeni

NavMesh üzerinde hareket edecek karakterlere (düşman, NPC, dost birlik) NavMeshAgent bileşeni eklenir. Bu bileşen rota hesaplamasını, ivmelenmeyi ve engellerin etrafından dolanmayı otomatik yönetir.

using UnityEngine.AI;

public class EnemyMovement : MonoBehaviour {
    private NavMeshAgent agent;
    void Awake() {
        agent = GetComponent<NavMeshAgent>();
    }
}

Ajan sahneye konulduğunda doğrudan en yakın NavMesh yüzeyine kenetlenir.

Ajan Parametreleri ve Çarpışma Önleme

NavMeshAgent üzerinde kritik hareket parametreleri yer alır: speed (maksimum sürat), stoppingDistance (hedefe ne kadar kala durulacağı) ve radius (ajanın gövde yarıçapı).

agent.speed = 3.5f;
agent.stoppingDistance = 1.0f;

Ajanlar karşılaştığında Obstacle Avoidance (kaçınma) algoritmaları sayesinde birbirlerinin içinden geçmek yerine yanlarından dolaşırlar.

Uygulama Agent hızı yapılandırma

Bir Start metodu tanımla. İçinde float hiz = 3.5f; tanımla ve konsola "Agent hizi: " + hiz metnini Debug.Log ile yazdır.

Başlangıç kodu

Player.cs
using UnityEngine;

public class AgentSpeedTester : MonoBehaviour
{
    // Start icinde hiz degiskenini tanimla ve yazdir
}

Örnek çözüm

Player.cs
using UnityEngine;

public class AgentSpeedTester : MonoBehaviour
{
    void Start()
    {
        float hiz = 3.5f;
        Debug.Log("Agent hizi: " + hiz);
    }
}

Beklenen çıktı

Agent hizi: 3.5

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 NavMesh üzerinde otomatik yol bulma ve engellerden kaçınarak yürüme yeteneğini karaktere hangi bileşen kazandırır?

  • MeshFilter
  • BoxCollider2D
  • NavMeshAgent Doğru cevap
  • AudioReverbZone

Açıklama: NavMeshAgent bileşeni, karakterin NavMesh üzerinde hedef noktalara doğru fiziksel engellere çarpmadan hareket etmesini sağlar.

2 Agent bileşenini al

Soru
NavMeshAgent agent = GetComponent<____>();
Cevap
NavMeshAgent agent = GetComponent<NavMeshAgent>();

Açıklama: NavMesh hareket bileşenine script içinden erişmek için 'GetComponent<NavMeshAgent>()' çağrılır.

3 Agent bileşen özellikleri

Kavram Anlamı
NavMeshAgent Yolu takip eden hareket bileşeni
speed Ajanın maksimum yürüme hızı
stoppingDistance Hedefe varmadan önce durulacak mesafe
obstacle avoidance Çarpışmadan kaçınarak hareket etme

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