Довідники Unity C# NavMeshAgent

Що таке NavMeshAgent в Unity C#?

Клас NavMeshAgent в Unity використовується для створення та керування агентами, які можуть пересуватись заздалегідь розрахованими навігаційними сітками (NavMesh). Це корисно для створення штучного інтелекту, який може рухатись і уникати перешкод у ігровому світі.


Агенти NavMeshAgent можуть слідкувати за ціллю, змінювати маршрут і враховувати динамічні зміни в оточенні. Вони використовують навігаційну сітку, створену за допомогою інструмента NavMesh.


Приклад використання NavMeshAgent
using UnityEngine;
using UnityEngine.AI;

public class EnemyAI : MonoBehaviour
{
    private NavMeshAgent agent;
    public Transform target;

    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
        if (target != null)
        {
            agent.SetDestination(target.position);
        }
    }

    void Update()
    {
        if (target != null)
        {
            agent.SetDestination(target.position);
        }
    }
}


У цьому прикладі агент налаштований на стеження за ціллю, яка передається через публічне поле target. Метод SetDestination використовується для встановлення поточної цілі руху.


NavMeshAgent надає багато корисних властивостей і методів, таких як швидкість, радіус повороту, і можливість динамічно змінювати маршрут. Наприклад, можна змінювати швидкість агента залежно від ситуації або перевіряти, чи досяг він цілі за допомогою методу remainingDistance.


Для роботи з NavMeshAgent необхідно заздалегідь створити навігаційну сітку. Це робиться через панель Bake в Unity. Зверніть увагу, що для коректної роботи агенти повинні знаходитися на одному рівні з поверхнею NavMesh.

Коментарі
Додати коментар

Поки що коментарів немає