Bekerja dengan NavMeshAgent di Unity

Di Unity, NavMeshAgent adalah komponen canggih yang memungkinkan Anda mengimplementasikan pencarian jalur dan navigasi untuk karakter atau objek dalam game Anda. Ini menggunakan sistem navigasi bawaan Unity untuk menghitung jalur pada permukaan NavMesh. Dalam tutorial ini, kita akan membahas dasar-dasar pengaturan dan penggunaan NavMeshAgent dengan contoh kode.

Prasyarat

  • Pemahaman dasar Unity interface dan konsep pengembangan game.
  • Unity diinstal di sistem Anda (versi 2017 atau lebih baru).

Menyiapkan NavMesh di Unity

Sebelum kita mendalami penggunaan NavMeshAgent, kita perlu menyiapkan NavMesh di scene kita.

  1. Buat Permukaan NavMesh:

    • Pergi ke 'GameObject -> 3D Object -> NavMesh Surface'. Ini membuat GameObject baru dengan komponen 'NavMeshSurface' terpasang.
    • Sesuaikan pengaturan komponen NavMesh Surface sesuai kebutuhan untuk adegan Anda.
  2. Panggang NavMesh:

    • Klik tombol 'Bake' di komponen 'NavMesh Surface' untuk menghasilkan NavMesh untuk adegan Anda.
    • Pastikan lingkungan Anda (medan, rintangan, dll.) dikonfigurasi dengan benar untuk memungkinkan pencarian jalan yang akurat.

Menggunakan NavMeshAgent dalam Kode

Sekarang, mari kita tulis beberapa kode untuk melakukan perpindahan GameObject menggunakan NavMeshAgent.

Langkah 1: Lampirkan NavMeshAgent ke GameObject

  • Lampirkan komponen NavMeshAgent ke GameObject Anda di editor Unity. Anda dapat melakukan ini dengan memilih GameObject, mengklik 'Add Component', lalu menambahkan 'NavMeshAgent'.

Langkah 2: Tulis Naskah untuk Gerakan

  • Buat skrip C# baru (misalnya, 'PlayerController.cs') dan lampirkan ke GameObject dengan komponen NavMeshAgent. Buka skrip di editor kode pilihan Anda.
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);
        }
    }
}

Langkah 3: Siapkan Adegan dan Uji

  • Pastikan GameObject Anda dengan NavMeshAgent dan skrip terlampir ada di adegan.
  • Tekan Play di Editor Unity dan amati perilakunya.
  • Klik di mana saja pada permukaan 'NavMesh', dan GameObject akan bergerak menuju posisi tersebut.

Ringkasan

Dalam tutorial ini, Anda mempelajari cara menyiapkan dan menggunakan NavMeshAgent untuk pencarian jalur dan navigasi di Unity. Dengan mengikuti langkah-langkah dan contoh kode ini, Anda dapat menerapkan gerakan dasar untuk karakter atau objek dalam game Anda menggunakan sistem navigasi bawaan Unity.

Artikel yang Disarankan
Cara Membuat FPS Dengan Dukungan AI di Unity
Menerapkan Agen NavMesh di Unity
Buat NPC yang Mengikuti Pemain di Unity
Cara Membuat AI Rusa di Unity
Ulasan Paket Unity Asset Store - Sistem Zombie AI
Menerapkan AI Musuh dalam Unity
Unity Tambahkan Musuh ke Platformer 2D