Navigation mesh adalah salah satu fitur yang ada pada unity yang
digunakan untuk melakukan pathfinding, yaitu fitur untuk melakukan pencarian
jalan secara otomatis untuk memudahkan programmer sebagai pengganti dari metode
algoritma A*.
Cara untuk menggunakan navigation mesh, pertama kita harus melakukan
bake pada menu Window>Navigation, pada gameobject yang mau kita jadikan
wilayah untuk dilakukan pencarian, game object harus dalam mode static
Setelah melakukan bake(dalam contoh pada sebuat cube besar) maka
akan terlihat warna biru seperti berikut, yang artinya NavMesh sudah
tergenerate dengan benar.
|
Langkah-langkah tadi adalah bertujuan untuk melakukan prekalkulasi
path, bagi yang melakukan explorasi(misalkan player) agar dapat memanfaatkan
navmesh maka player sebagai game object harus memiliki komponen Nav Mesh Agent
Berikan Script
PlayerController seperti berikut pada game object player
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour {
private Vector3 targetPosition;
private NavMeshAgent navMeshAgent;
void Awake()
{
navMeshAgent = GetComponent<NavMeshAgent>();
}
void Update()
{
//melakukan
raycast pada tile melalui mouse untuk menentukan posisi tujuan player
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit,
100)) {
Debug.Log(hit.point);
targetPosition = hit.point;
}
//menggunakan
navmeshagent untuk menentukan arah jalan dari player untuk mencapai tujuan
navMeshAgent.SetDestination(targetPosition);
transform.position = transform.position + navMeshAgent.desiredVelocity * Time.deltaTime;
}
}
|
Lakukan hover pada
lantai menggunakan mouse selama game berjalan, navMeshAgent akan menentukan
arah berjalan yang harus dilalui.
No comments:
Post a Comment