Jump to content
UnitySpain
Mcloud

Enemigos con RayCast disparo a través de collider

Recommended Posts

Buenas, 

Tengo un enemigo arquero que no va mal, todos los enemigos localizan al jugador con raycast, y cuando entra en su zona de visión van hacia el, y si entra en su zona de ataque pues....si, ataca...

El caso es que el arquero ataca desde que entras en su campo de visión, salvo que haya algun collider entre medias, en ese caso no detecta que entras, a uno en especial lo tengo puesto en una zona rodeado de lava, en los lagos de lava tengo puesto un collider a modo de ataque para que si el jugador lo pisa le quite algo de vida, y si se queda dentro pues acaba yendo a buscar el anillo único...pero con estos colliders el arquero no ataca, pongo un par de imágenes por si ayudan a que os hagáis una idea

Este es el arquero en su zona, el cillider esta como triger, he usado un poligono que he ido ajustando

ColiderLago.PNG

Aquí se ve su visión y como tira el raycast

VisionArquero.PNG

Si quito desactivo el collider ataca sin problema

AttArquero.PNG

Como puedo hacer para que ignore el colider y ataque?

Gracias!!

Share this post


Link to post
Share on other sites
1 minute ago, Mcloud said:

Como puedo hacer para que ignore el colider y ataque?

Gracias!!

Hola, crea una variable serializable o publica que sea un LayerMask, por ej:

[SerializeField] LayerMask attackLayerMask;

En tu raycast pasale este layermask (no lo pongo exacto porque no recuerdo el orden de los argumentos)

La joda es que el raycast detecte solo obstaculos, nada más, entonces poné todo objeto relevante para la detección en una capa, ej "Obstáculos", las zonas de peligro en otra, por ej "Suelo" (más que nada para mantener el orden), cualquier nombre que grite "yo no estoy encima, estoy por debajo de la línea de vision de los personajes", esta ultima sería la lava de tu juego. Cuando uses el ya mencionado layermask te asegurás de que la capa obstáculos esté tildada, pero no la capa "Suelo". Ahora el collider no debería intervenir.

 

Share this post


Link to post
Share on other sites
24 minutes ago, lightbug said:

En tu raycast pasale este layermask (no lo pongo exacto porque no recuerdo el orden de los argumentos)

gracias!! ya lo he pillado, el problema estaba en la layer de la lava que estaba como default, al cambiársela ya me ve y me ataca! muchas gracias!!!

Share this post


Link to post
Share on other sites

×
×
  • Create New...