Advertencia de Unity "Error al crear el agente porque no está lo suficientemente cerca de NavMesh" y los problemas resultantes

Lo que significa este error es: el nodo donde se encuentra NavMeshAgent no está ubicado en la cuadrícula de búsqueda de ruta.

Desde el punto de vista más básico, significa que tu personaje o agente no se encuentra en el terreno de navegación.

Lo más importante es: el error resultante:

"SetDestination" solo se puede invocar en un agente activo que se haya colocado en NavMesh.

El personaje no puede moverse.

He estado buscando el problema durante mucho tiempo, busqué en Baidu durante cuatro o cinco horas y encontré muchas soluciones en Internet, que incluyen, entre otras:

  1. Dado que el carácter es generado por Instantiate, no está en la malla de navegación al principio, por lo que debes usar algo como NavMeshAgent.Warp(transform) para restablecer la posición en lugar de transform.position para inicializar la posición.

  1. Diferentes personajes se superponen y la detección de obstáculos es anormal. Siempre que cambies el Radio a 0 o desactives Evitar obstáculos, los personajes pueden superponerse y moverse.

  1. O active repetidamente el estado de activación del componente Nav Mesh Agent en el personaje.

  1. Algunas personas tienen preguntas básicas:

1>.La etiqueta estática de navegación del objeto no está configurada.

2.> Sin malla de navegación horneada.

3.> El objeto de búsqueda de ruta en sí no tiene un componente de navegación configurado.

No tuve problemas con esto, hasta que busqué en Bing respuestas a esta pregunta de algunos desarrolladores extranjeros al día siguiente.

Copié algunos métodos de traducción automática:

1: Colocar el terreno en el origen 0, 0, 0

2: Coloque el script en la parte superior: uno es colocar el uso de unityEngineAI en la parte superior y el otro es intentar colocar el script C# en el script NavMeshAgent.

3: Primero active el script NavMeshAgent en el personaje del agente y luego genere la red en sí (esto está sujeto a discusión)

4: Verifique si el error informado es demasiado lejos o demasiado cerca y suba o baje el terreno.

5: Es necesario observar la proporción del agente. La proporción de la escena es demasiado grande. El radio de rotación y los valores de altura deben ajustarse adecuadamente.

6: Algunos dicen que el colisionador del agente se verá afectado, intente desmarcarlo o moverlo a otro lugar.

Para ser honesto, ninguno resolvió mi problema, solo seguí el tutorial e hice una navegación simple.

Hasta que vi que un hermano extranjero dijo algo:

No olvides verificar el Tipo de Agente, ya que tenía "Nuevo Agente" en mi Agente, cambiarlo a Humanoide me ayudó.

Solo porque intenté agregar un nuevo agente y el personaje usó este nuevo agente, incluso olvidé que se agregó un nuevo agente en ese momento. Acabo de leer en el libro que existe tal función.

Solución:

Cambiar el nombre del agente nuevamente a Humanoide.

Aunque esto dará como resultado que solo se seleccione un modo de proxy, no se informa ningún error.

Acabo de enterarme de esto y no sé por qué agregarlo no funciona. ¿Qué pasa si quiero agregar un modo de proxy diferente ? Si alguien sabe de esta situación por favor deje un mensaje.

Supongo que te gusta

Origin blog.csdn.net/liyangufo/article/details/129629830
Recomendado
Clasificación