Unity: cómo hacer que el objeto ignore el ray cast
– UnityAssets3Free
bienvenido , me llamo Camilo y para hoy os traigo
nueva pregunta curiosa
Tengo un objeto de juego (digamos Enemy
) y tiene un Audio Trigger
guión en él con un Sphere Collider
.
Ahora el sistema de ataque usa Ray Casting
para detectar la capa, sin embargo, cuando apuntas a un enemigo que tiene un Audio Trigger
en él con un Sphere Collider
los Ray casting
no reconocer ¿Cómo resuelves esto?
2 respuestas 2
En primer lugar, muchas gracias a Ben Tristten, obtuve la respuesta de uno de sus cursos para mujeres.
En tu Audio Trigger
secuencia de comandos (o una secuencia de comandos que se encuentra en la parte superior del objeto del juego al que desea transmitir el rayo). agregue la siguiente línea a Start()
o Awake()
método:
gameObject.layer = LayerMask.NameToLayer ("Ignore Raycast");
Espero que esto ayude a cualquiera que tenga problemas con esto 🙂
Además de la respuesta de Rony_y, cabe señalar que el Physics.Raycast()
método (así como otros métodos similares como RaycastAll, SphereCast, etc.) toma un LayerMask
parámetro en una de sus sobrecargas.
Este parámetro le permite especificar qué capas desea raycast contra como un máscara de bits (así que la conversión contra la capa Predeterminada se haría simplemente pasando un 1
mientras se convierte a Predeterminado y Capa 8, la primera capa que puede nombrar, se haría pasando 257
: por ejemplo. 1<<8 + 1<<0
).
De esta manera, puede configurar sus objetos para que tengan diferentes capas físicas según sea necesario (hasta 32 capas diferentes, las primeras 8 de las cuales no se pueden renombrar), por ejemplo, todos los volúmenes del colisionador de audio pueden tener su propio Audio
capa que quizás no incluyas en tus raycasts.
nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias
por hoy,espero que te funcione