Pada tutorial kali ini akan dijelaskan teori pathfinding sederhana yang ada pada jendela Navigation dan menggunakan perintah NavMeshAgent untuk mengeksekusi. Kelebihan Unity adalah telah disiapkan jendela untuk mengatur pathfinding dengan mudah tanpa harus menuliskan listing program algoritma pathfinding.
Pathfinding biasa digunakan agar sebuah objek dapat mengikuti jalur yang dilalui oleh objek lainnya, selain itu digunakan juga untuk menemukan objek dengan melihat jalur terdekat yang dapat ditempuh.
Pada tutorial ini dibuat objek sphere sebagai musuh yang akan mendeteksi dan mendekati pemain (First Person Controller).
MULAI
Tambahkan terlebih dahulu jendela Navigation, Window - Navigation.
Kemudian pilih objek yang akan diberi jalur pathfinding kemudian lihat pada jendela Navigation - Object. ceklis Navigation Static dan OffMeshLink Generation.
Disini objek yang akan diberi jalur adalah "Navig", yaitu objek alas dimana First Person Controller dapat bergerak. Untuk menambah objek baru yang akan diberi jalur lakukan hal yang sama seperi pada objek "Navig".
Kemudian masuk ke jendela Navigarion - Bake, lakukan pengaturan jalur yang akan dibuat, jika sudah klik tombol "Bake".
Maka hasilnya seperti pada gambar di atas. jalur pathfinding adalah jalur yang berwarna biru.
Buat objek sphere baru dan posisikan sphere dan FPC berjauhan untuk melihat nantinya sphere mendekati objek FPC.
Klik objek sphere dan berikan komponen NavMeshAgent. Component - Navigation - Nav Mesh Agent.
Posisikan sphere berada di atas jalur pathfinding, lihat pada inspektor untuk pengaturan NavMeshAgent.
Pada tahap ini proses pembuatan jalur pathfinding selesai, selanjutnya bagaimana NavMeshAgent dijalankan dan diakses melalui listing program.
1. NavMesh.cs
using UnityEngine;
using System.Collections;
public class NavMesh : MonoBehaviour {
NavMeshAgent nav;
Transform player;
void Awake(){
nav = GetComponent<NavMeshAgent>();
player = GameObject.FindGameObjectWithTag("Player").transform;
}
void Update(){
nav.SetDestination(player.position);
}
}
Buat C# Script baru dan tuliskan listing program di atas.
Penjelasan Listing Program
Pertama NavMeshAgent diakses melalui variabel nav. dan posisi FPC akan diakses oleh variabel player.
Nav = GetComponent<NavMeshAgent>();
Pada tahap ini nav mengakses komponen NavMeshAgent yang ada pada objek Sphere.
player = GameObject.FindGameObjectWithTag("Player").transform.
variabel player akan mengakses posisi objek FPC yang memiliki Nama Tag "Player".
nav.SetDestination(player.position);
Pada tahap ini NavMeshAgent akan menentukan tujuan yang akan dicapai, tujuannya adalah player.position atau posisi player.
Karena pada listing program nama tag pemain yang dideteksi sebagai "Player", maka ubah nama tag FPC menjadi Player. Klik FPC kemudian lihat pada Inspektor - Tag.
Tambahkan script tadi ke objek Sphere.
Jalankan Game dan lihat yang terjadi, sphere bergerak menaiki jalan tanjakan untuk mendekati FPC.
SELESAI