Estoy diseñando un tutorial para un juego de Unity y estoy atascado en lo que parece un problema trivial. Para cada paso del tutorial, guío al usuario ocultando todo en la pantalla, excepto los botones que deben presionar. Mi jerarquía de juego se ve así.
Button Canvas Select_Me_Button Dont_Select_Me_Button Tutorial Canvas Mask Group 1 Left Border Mask Right Border Mask Up Border Mask Down Border Mask Mask Group 2 ... TutorialCanvas GameObject tiene un componente Canvas con un orden de clasificación más alto que ButtonCanvas . Agregué el Componente GraphicRaycaster con la Blocking Mask establecida en todo y los Blocking Objects establecidos en Ninguno para el TutorialCanvas. Sin embargo, a pesar de que TutorialCanvas se muestra encima de Button Canvas, todavía puedo hacer clic en la máscara y activar los botones en los que se supone que no se puede hacer clic. Pude bloquear los clics agregando componentes de imagen que funcionan como máscaras a los objetos principales Mask Group 1 y Mask Group 2 pertenecientes a TutorialCanvas , pero esto no es deseable, porque necesito agrupar los componentes de imagen para crear una máscara, y gameobject solo puede aceptar 1 componente de imagen.
Me cuesta imaginar que esto sea tan difícil. Solo necesito un lienzo con una máscara para bloquear los clics que van a un lienzo detrás de él.
Gracias a la ayuda en Unity Forum, resolví el problema creando un solo grupo de máscaras y colocándolas a través del componente de posición anclada de RectTransform en el script.