Unity'de NavMeshAgent ile çalışma

Unity'de NavMeshAgent, oyununuzdaki karakterler veya nesneler için yol bulma ve gezinme uygulamanıza olanak tanıyan güçlü bir bileşendir. NavMesh yüzeyindeki yolları hesaplamak için Unity'nin yerleşik navigasyon sistemini kullanır. Bu eğitimde, NavMeshAgent'ı kurmanın ve kullanmanın temellerini kod örnekleriyle ele alacağız.

Önkoşullar

NavMesh'i ayarlama Unity

NavMeshAgent'ı kullanmaya başlamadan önce sahnemizde bir NavMesh kurmamız gerekiyor.

  1. Bir NavMesh Yüzeyi Oluşturun:

    • 'GameObject -> 3D Object -> NavMesh Surface''e gidin. Bu, 'NavMeshSurface' bileşeninin eklendiği yeni bir GameObject oluşturur.
    • NavMesh Surface bileşeninin ayarlarını sahneniz için gerektiği şekilde yapın.
  2. NavMesh'i pişirin:

    • Sahneniz için NavMesh'i oluşturmak için 'NavMesh Surface' bileşenindeki 'Bake' düğmesine tıklayın.
    • Ortamınızın (arazi, engeller vb.) doğru yol bulmaya izin verecek şekilde yapılandırıldığından emin olun.

NavMeshAgent'ı Kodda Kullanmak

Şimdi NavMeshAgent kullanarak GameObject hareketi yapmak için bazı kodlar yazalım.

Adım 1: NavMeshAgent'ı GameObject'e ekleyin

Adım 2: Hareket için Komut Dosyası Yazın

  • yeni bir C# betiği (örneğin, 'PlayerController.cs') oluşturun ve bunu NavMeshAgent bileşeniyle GameObject'e ekleyin. Komut dosyasını tercih ettiğiniz kod düzenleyicide açın.
using UnityEngine;
using UnityEngine.AI;

public class PlayerController : MonoBehaviour
{
    private NavMeshAgent navMeshAgent;

    void Start()
    {
        navMeshAgent = GetComponent<NavMeshAgent>();
    }

    void Update()
    {
        // Check for player input or any other conditions to trigger movement
        if (Input.GetMouseButton(0)) // Example: Move towards mouse click position
        {
            MoveToClickPosition();
        }
    }

    void MoveToClickPosition()
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            // Move NavMeshAgent towards the clicked position
            navMeshAgent.SetDestination(hit.point);
        }
    }
}

3. Adım: Sahneyi Ayarlayın ve Test Edin

  • NavMeshAgent'lı GameObject'inizin ve ekli betiğin sahnede mevcut olduğundan emin olun.
  • Unity Düzenleyicide Oynat tuşuna basın ve davranışı gözlemleyin.
  • 'NavMesh' yüzeyinde herhangi bir yere tıkladığınızda GameObject o konuma doğru hareket etmelidir.

Özet

Bu eğitimde Unity'de yol bulma ve gezinme için NavMeshAgent'ı nasıl kuracağınızı ve kullanacağınızı öğrendiniz. Bu adımları ve kod örneklerini takip ederek, Unity'nin yerleşik navigasyon sistemini kullanarak oyununuzdaki karakterler veya nesneler için temel hareketleri uygulayabilirsiniz.

Önerilen Makaleler
Unity'de NavMesh Agent'ı Uygulamak
Unity Asset Store Paketinin İncelenmesi - Zombi Yapay Zeka Sistemi
Unity'de Yapay Zeka Desteğiyle FPS Nasıl Yapılır?
Unity'de Oyuncuyu Takip Eden bir NPC Oluşturun
Unity'de Bir Geyiğin Yapay Zekası Nasıl Yapılır?
Unity 2D Platform Oyununa Düşman Ekleyin
Unity'de Düşmanın Yapay Zekasının Uygulanması