[UNITY] UI, Botones y Raycast

marod

¡Hola a todos!

Bueno, estoy un poco estancadete con un juego que estoy haciendo Tower defense al estilo Plants vs Zombies para moviles, concretamente en el tema de la UI. Os pongo un poco en situación:

Tengo un mapa de un determinado tamaño, que son tiles. Para poner una torreta, lo que hago es lanzar un raycast cada vez que el jugador pulsa sobre algún sitio de la pantalla y me devuelve si ha tocado un tile u otra cosa. Si toca un tile, se abre un menú (Panel UI) con un botón en la posición del tile.

Hasta ahí todo bien, se abre el panel, el jugador toca sobre el panel y este bloquea los raycast... el problema viene dado cuando el jugador pulsa el botón. Los botones en la UI se ve que no bloquean los raycast y claro, si pulso el botón sobre otro tile, el juego reacciona como si hubiera pulsado sobre ese tile y automáticamente me realiza la acción de abrirme el menú sobre ese tile.

He estado buscando por internet y lo único que se asemeja a una posible solución es con el Eventsystem, mirar a ver si tengo algo seleccionado, pero tampoco me ha funcionado.

¿Hay alguna forma de bloquear los raycast en los botones de la UI?

Muchas gracias

Srednuht

#1 No se si te he entendido del todo, pero mírate esto:

http://docs.unity3d.com/ScriptReference/EventSystems.EventSystem.IsPointerOverGameObject.html

kanc

No puedes simplemente no hacer el raycast cuando esta abierto el menu de UI?? Puedes levantar un flag en tu gamemanager cuando esta abierto y así chequeas.

3
B

Dependiendo de como lo tengas estructurado. Flag o state añadiendo y quitando listeners.

marod

Para quien le interese, buscando como hacerlo en internet me he topado con esta maravilla. Un asset free que tiene todo o casi todo lo necesario para la utilización de los touch y que aparte bloquea los touch si presionas en la UI.

En 2 minutos ya lo tenía hecho y corriendo perfectamente, lo recomiendo.

https://www.assetstore.unity3d.com/#!/content/30111

2 2 respuestas
squa1o

#5 Apuntado queda, gracias!

Srednuht

#5 Si vas a tirar de Asset, prueba este también

https://www.assetstore.unity3d.com/en/#!/content/7394

10/10

1 respuesta
marod

#7 Con el que he puesto voy más que servido para lo que quiero hacer, pero muchas gracias. A favoritos, tiene buena pinta.

Usuarios habituales