Cara Membuat NPC Mengejar Pemain di Unity Menggunakan NavMesh

Dalam tutorial ini, kita akan menggunakan sistem NavMesh Unity untuk membuat NPC yang mengejar Pemain. NavMesh menyediakan pencarian jalur dan penghindaran rintangan yang efisien, sehingga ideal untuk perilaku AI dalam lingkungan 3D.

Langkah 1: Menyiapkan Adegan

Sebelum mengimplementasikan NavMesh, kita perlu pengaturan adegan yang tepat:

  1. Buat proyek 3D baru di Unity.
  2. Tambahkan Plane untuk berfungsi sebagai ground.
  3. Tambahkan Cube atau model 3D apa pun untuk mewakili Pemain. Beri nama Player.
  4. Tambahkan Cube atau model 3D lain untuk mewakili NPC. Beri nama NPC.
  5. Tempatkan Pemain dan NPC pada posisi berbeda di Pesawat.

Langkah 2: Memanggang NavMesh

Untuk menggunakan sistem NavMesh Unity, kita perlu membuat navigasi mesh:

  1. Pilih bidang dasar dalam Hirarki.
  2. Pada Inspektur, klik Tambah Komponen dan tambahkan NavMeshSurface.
  3. Pada komponen NavMeshSurface, pastikan Pesawat ditandai sebagai permukaan yang dapat dilalui.
  4. Klik tombol Bake di komponen NavMeshSurface untuk menghasilkan NavMesh.
  5. Opsional: Jika Anda memiliki rintangan (misalnya, dinding), pastikan rintangan tersebut memiliki komponen NavMeshObstacle untuk menghalangi pergerakan NPC.

Langkah 3: Menambahkan NavMeshAgent

Sekarang, kita akan menyiapkan NPC untuk menggunakan pathfinding Unity:

  1. Pilih NPC dalam Hirarki.
  2. Di Inspektur, klik Tambahkan Komponen dan tambahkan NavMeshAgent.
  3. Sesuaikan properti NavMeshAgent sesuai kebutuhan, seperti kecepatan, akselerasi, dan jarak berhenti.

Langkah 4: Menulis Naskah Chase

Berikutnya, kita akan membuat skrip untuk membuat NPC mengejar Pemain:

  1. Klik kanan pada panel Project dan pilih Create > C# Script. Beri nama NPCChase.
  2. Klik dua kali skrip untuk membukanya di editor kode Anda.
  3. Ganti kode default dengan yang berikut ini:
using UnityEngine;
using UnityEngine.AI;

public class NPCChase : MonoBehaviour
{
    public Transform player; // Reference to the player's position
    private NavMeshAgent agent; // Reference to the NavMeshAgent

    void Start()
    {
        // Get the NavMeshAgent component
        agent = GetComponent<NavMeshAgent>();
    }

    void Update()
    {
        if (player != null)
        {
            // Set the agent's destination to the player's position
            agent.SetDestination(player.position);
        }
    }
}

Langkah 5: Menetapkan Referensi Skrip dan Pemain

Terakhir, kita akan menetapkan skrip dan mengatur referensi Pemain:

  1. Pilih NPC dalam Hirarki.
  2. Tarik dan letakkan skrip NPCChase ke NPC.
  3. Di Inspektur, temukan kolom Player dalam skrip.
  4. Tarik GameObject Pemain dari Hirarki ke bidang Pemain.

Langkah 6: Menguji Adegan

Untuk menguji pengaturan Anda:

  1. Tekan tombol Play di Editor Unity.
  2. Gerakkan Pemutar (misalnya menggunakan input keyboard atau pengontrol).
  3. Amati NPC secara dinamis mencari jalan dan mengejar Pemain, hindari rintangan jika memungkinkan.

Opsional: Menyesuaikan Perilaku

Anda dapat lebih menyempurnakan perilaku NPC Anda:

  • Jarak Berhenti: Sesuaikan Jarak Berhenti NavMeshAgent untuk membuat NPC berhenti pada jarak tertentu.
  • Penghindaran Rintangan: Pastikan rintangan memiliki komponen NavMeshObstacle untuk penghindaran yang akurat.
  • Animasi: Gunakan animasi untuk membuat pergerakan NPC lebih realistis dengan memicu animasi berdasarkan kecepatan.

Kesimpulan

Kami telah menciptakan NPC yang secara dinamis mengejar Pemain menggunakan sistem NavMesh Unity. Pendekatan ini tangguh dan dapat dengan mudah diperluas untuk perilaku AI yang lebih kompleks. Bereksperimenlah dengan pengaturan yang berbeda untuk menyesuaikan pencarian jalur NPC dengan kebutuhan game Anda.