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:
- Buat proyek 3D baru di Unity.
- Tambahkan Plane untuk berfungsi sebagai ground.
- Tambahkan Cube atau model 3D apa pun untuk mewakili Pemain. Beri nama Player.
- Tambahkan Cube atau model 3D lain untuk mewakili NPC. Beri nama NPC.
- Tempatkan Pemain dan NPC pada posisi berbeda di Pesawat.
Langkah 2: Memanggang NavMesh
Untuk menggunakan sistem NavMesh Unity, kita perlu membuat navigasi mesh:
- Pilih bidang dasar dalam Hirarki.
- Pada Inspektur, klik Tambah Komponen dan tambahkan NavMeshSurface.
- Pada komponen NavMeshSurface, pastikan Pesawat ditandai sebagai permukaan yang dapat dilalui.
- Klik tombol Bake di komponen NavMeshSurface untuk menghasilkan NavMesh.
- 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:
- Pilih NPC dalam Hirarki.
- Di Inspektur, klik Tambahkan Komponen dan tambahkan NavMeshAgent.
- 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:
- Klik kanan pada panel Project dan pilih Create > C# Script. Beri nama NPCChase.
- Klik dua kali skrip untuk membukanya di editor kode Anda.
- 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:
- Pilih NPC dalam Hirarki.
- Tarik dan letakkan skrip NPCChase ke NPC.
- Di Inspektur, temukan kolom Player dalam skrip.
- Tarik GameObject Pemain dari Hirarki ke bidang Pemain.
Langkah 6: Menguji Adegan
Untuk menguji pengaturan Anda:
- Tekan tombol Play di Editor Unity.
- Gerakkan Pemutar (misalnya menggunakan input keyboard atau pengontrol).
- 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.