El NavMeshAgent en Unity es un componente utilizado para que los personajes o entidades naveguen por un entorno utilizando NavMesh (malla de navegación). Este sistema permite que los personajes se desplacen de manera realista, evitando obstáculos y siguiendo rutas definidas.
El NavMeshAgent es un componente de Unity que se usa para mover objetos en un entorno de navegación basado en NavMesh. Este agente calcula la ruta óptima hacia un destino, teniendo en cuenta obstáculos y áreas de navegación definidas en la escena.
Para usar NavMeshAgent, sigue estos pasos:
1. Añadir NavMesh a la escena:
Window > AI > Navigation
.
Bake
).
2. Agregar el componente NavMeshAgent:
NavMeshAgent
desde Inspector > Add Component > Navigation > NavMeshAgent
.
3. Mover el agente con un script:
using UnityEngine;
using UnityEngine.AI;
public class MoveAgent : MonoBehaviour
{
public Transform target;
private NavMeshAgent agent;
void Start()
{
agent = GetComponent<NavMeshAgent>();
agent.destination = target.position; // Asigna el destino al agente
}
}
En este ejemplo, el NavMeshAgent se moverá automáticamente hacia el target.
Propiedad | Descripción |
---|---|
destination
|
Define el destino del agente. |
speed
|
Velocidad de movimiento del agente. |
acceleration
|
Aceleración del agente. |
stoppingDistance
|
Distancia mínima antes de detenerse. |
isStopped
|
Detiene o reanuda el movimiento. |
Para cambiar la posición objetivo en tiempo de ejecución:
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
agent.destination = hit.point;
}
}
}
Este código permite que el agente se mueva a la posición donde haga clic el jugador.
Puedes consultar más información en la documentación oficial de Unity:
Jorge García
Fullstack developer