Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Temas recientes

ignorar el raycast si se presiona un boton

Iniciado por wainerS, Abril 27, 2019, 07:40:02 AM

Tema anterior - Siguiente tema
Hola buenas noches.
 
Estoy haciendo un proyecto donde mi personaje se mueve por medio de navmesh agent con ayuda del raycast sobre una superficie; resulta que necesito crear unos botones "GUI" para activar algunas acciones pero al presionarlos me ejecuta la acción de mover mi personaje, necesito bloquear la acción de mover cuando se presione los botones. de antemano gracias.  algun Tip a tener en cuenta.

Buenas, antes de nada te recomendaría pasarte por la sección de Presentación para que el administrador te active la cuenta siempre y cuando te hayas presentado de forma adecuada, luego podrás publicar las dudas en su sección adecuada. Como ves este post está en Offtopic, eso significa que no habrá mucha gente paseándose por aquí. Un saludo!

Te respondo rápidamente la duda: En cada componente de UI tienes debajo un checkbox llamado "Ignore Raycast". Desmarcando, esos botones no se evaluarán.
 
También puedes desactivar la propiedad "Interactable" de los componentes Button, para que directamente no funcione, cuando a ti te interese.
 
 
 
 

Como es que estás usando la parte del GUI? (OnGUI no ?). En OnGUI cuando un evento de SO se da (EventType == MouseType por ej) podés "usar" (Use) el evento, esto lo que va a hacer es que el evento será absorbido, evitando que otras partes del código (o de códigos externos) lo usen. La cosa es que no se si pasará lo mismo con el sistema de Input (que no creo), podrías probar.
 
Si esto no funca podrías incluir en el LayerMask del raycast a la capa del objeto del OnGUI (que tampoco no recuerdo si funciona), así el ray va a considerar al boton e ignorará (supuestamente) al navMesh (quizás tengas que poner algun que otro if).
 
 
 
 

Etiquetas: