person-walkingAgentes de Movimiento/NPCs

Usa Movement_Agent para mover entidades con búsqueda de rutas y restricciones de navmesh.

Agentes de movimiento

Movement_Agent es un componente auxiliar de movimiento usado para la orientación y la búsqueda de rutas.

Más comúnmente, lo usas para:

  • Solicitar una ruta hacia un objetivo (establecer_objetivo_de_ruta)

  • Restringir una entidad al espacio transitable (bloquear a un Navmesh)

circle-info

Esta página cubre movimiento y búsqueda de rutas. Para construir/consultar navmeshes, consulta Navmesh y Colisión.

Referencia API de Movement_Agent

Movement_Agent :: clase : Componente {
    Set_Path_Target_Result :: struct {
        éxito:           bool;
        siguiente_punto: v2;
        dirección_mov:   v2;
    }

    // Solicita una ruta hacia el objetivo a una velocidad dada.
    set_path_target :: método(objetivo: v2, velocidad: float) -> Set_Path_Target_Result;

    // Restringe este agente a un navmesh (ajustarlo a él cada frame).
    // Pasa null para limpiar.
    set_navmesh_to_lock_to :: método(navmesh: Navmesh);

    // Ajustes/comportamiento comunes
    velocidad_movimiento: float;
    fricción:             float;
    velocidad:            v2;
    entrada_este_frame:   v2;
}
circle-exclamation

Búsqueda de rutas (establecer un objetivo)

Llama a establecer_objetivo_de_ruta cada frame (o cada vez que tu objetivo cambie).

circle-info

establecer_objetivo_de_ruta se procesa más tarde en el frame en paralelo con otros agentes, así que el primer frame en que establezcas un nuevo objetivo puede no devolver éxito == true.

Bloquear el movimiento a un navmesh (permanecer en espacio transitable)

Si una entidad nunca debe salir del espacio transitable, bloquéala a un navmesh:

Llámalo con null para limpiar.

Creando NPCs en movimiento

Este es un NPC minimalista de “seguir al jugador” usando un agente de movimiento:

Última actualización