For the complete documentation index, see llms.txt. This page is also available as Markdown.

Агенты движения/NPC

Используйте Movement_Agent для перемещения объектов с учетом поиска пути и ограничений навмеша.

Агенты движения

Movement_Agent — это вспомогательный компонент движения, используемый для управления и поиска пути.

Чаще всего его используют для:

  • Запросить путь к цели (set_path_target)

  • Ограничить сущность проходимым пространством (привязать к Навмеш)

  • Перемещаться через простую геометрию коллайдеров

На этой странице рассматриваются перемещение и поиск пути. Подробнее о построении/запросе навмешей и деталях триггеров коллайдеров см. Навмеш и столкновения.

Справочник API Movement_Agent

Movement_Agent :: class : Component {
    Set_Path_Target_Result :: struct {
        success:        bool;
        next_point:     v2;
        move_direction: v2;
    }

    // Запросить путь к цели на заданной скорости.
    set_path_target :: method(target: v2, speed: float) -> Set_Path_Target_Result;

    // Ограничить этого агента навмешем (прилипать к нему каждый кадр).
    // Передайте null, чтобы очистить.
    set_navmesh_to_lock_to :: method(navmesh: Navmesh);

    // Общие настройки/состояние
    movement_speed:   float;
    agent_radius:     float;
    friction:         float;
    velocity:         v2;
    input_this_frame: v2;
}

Физика и триггеры движения CSL

Сущности Movement_Agent имеют путь физики CSL для простого баллистического движения.

Коллизии: включённые не-триггерные коллайдеры агента блокируются включёнными не-триггерными коллайдерами мира с учётом category_bits / mask_bits фильтрации. Движение останавливается при первом попадании и скользит вдоль поверхности столкновения.

Колбэки триггеров принадлежат коллайдеру и не требуют Movement_Agent.

Поиск пути (задать цель)

Вызывайте set_path_target каждый кадр, пока сущность должна продолжать движение. Один вызов не является постоянной командой движения.

set_path_target обрабатывается асинхронно вместе с другими агентами. Возвращаемый результат — это самые свежие завершённые данные поиска пути, поэтому в первый кадр после установки новой цели может не вернуть success == true.

Зафиксировать движение на навмешe (оставаться на проходимой поверхности)

Если сущность никогда не должна покидать проходимую поверхность, привяжите её к навмешу:

Вызовите это с null чтобы очистить.

Создание движущихся NPC

Это минимальный NPC «следуй за игроком» с использованием агента движения:

Последнее обновление