NavMeshAgent
- Oyun Geliştirme kursu
- İleri seviye
- Ders 38/71
- 4 dk
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
using UnityEngine;
public class AgentSpeedTester : MonoBehaviour
{
// Start icinde hiz degiskenini tanimla ve yazdir
}Örnek çözüm
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
NavMeshAgent agent = GetComponent<____>();
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 |