Jump to content
UnitySpain

Aceptamos donaciones vía Paypal.

UnitySpain.com es un servicio gratuito, pero mantener la Comunidad conlleva una serie de gastos.

Fondo Anual Unityspain: Donados 15,00€ de 150,00€

  • Servidor: Dominio.com y Hosting Web
  • Mantenimiento de los Foros
  • Contenido y Servicios Extras
  • Mantenimiento para Redes Sociales
Antonio

¿Cómo se encajan los elementos de UI?

Recommended Posts

Ayer estuve dando vueltas otra vez intentando hacer menús, pero se me siguen mareando los elementos UI.(Las ventanas son Image UI)

ui_by_adngel_ddoqyt8-pre.jpg?token=eyJ0e

Este es mi ejemplo más reciente, pero llevo lidiando con este problema mucho tiempo.

En este ejemplo, intento que aparezca esa ventana a la derecha:

- Que aparezca pegada a la ventana de Settings (ni más lejos ni que se pisen), 
- Que no se corte al final de la ventana.
- Que se mantengan ciertos márgenes.
- Que la ventana de Settings aparezca relativamente a la izquierda de la pantalla (podía ponerla en el centro y que se estrechara, pero prefiero que aparezca fija a la izquierda y usar el centro y la mitad derecha para mostrar la información, distintos paneles y tal).

Esto esta hecho con un canvas usando Screen-Space cameraScale with Screen Size.
Como hijo tiene otros 2 canvas (uno para el menu pause, y otro para el menu Settings. El menu pause no tiene ventana a la derecha y sus botones tienen otros nombres y funciones, pero visualmente son muy similares).
Cada subCanvas (pause y settings) tiene un Elemento imagen que es el cuadrado azul, y este elemento, tienen varios hijos múltiples que son los botones).

La ventana a la derecha, no sé si hacerla como sub-canvas de Settings o si ponerla simplemente como otro hijo o qué hacer con ella... @_@

He probado distintas configuraciones con los anclajes y el escalado, pero no consigo mantenerlo, también he probado el Layout horizontal, pero aunque me mantiene los márgenes, hace que las dos ventanas se pisen o se separen.

Buscando, veo que muchos hacen un diseño de un menó con objetos flotantes separados, pero si quisiera objetos unidos, ¿como podría hacerlo?

Otras veces he intentado completar más un menú para gestiones (un lado columna de objetos, al otro lado un mapa y debajo unas estadísticas)  pero me siguen dando la tabarra problemas similares.  ¿Conocéis algún procedimiento para tratar con este embrollo? @_@

 

Share this post


Link to post
Share on other sites

Primero: Tienes que seguir una secuencia, no solo es poner paneles y ya.

Segundo: El tema de la UI es algo en el que se tiene que trabajar mucho para conseguir un buen resultado.

Crea primero un Canvas, asignale un panel que encaje en todo el Canvas, este es el espacio que usarás para los elementos UI.

Canvas

         |----PanelGeneral

                   |--- Settings (Panel)

                                |------UI Settings

                                |------ButtonPlay

                                |------ButtonEtc.

                   |---- (Otro) (Panel)

                                |------OtherObject...

                                |------OtherObject2...

 

Hay más opciones para mejorar esto, como los Grid, contentSize etc.

Los paneles secundarios que son "Settings, Otro" son los que vas a escalar y pondrás en la posición deseada dentro del "Panel" Primario.

Share this post


Link to post
Share on other sites

Valep, creo que ya...

ddos425-e27c3009-0144-48c9-b416-437c1fa6

 

Básicamente lo que he aprendido es a mandar al traste con las opciones de posición, longitud, escalados, layouts y anchors-presets.

En su lugar centrarme mayormente en colocar los anchors manualmente, (Extendiendo el atributo "anchors" y poniendo los valores ahí, luego arriba dejar sólo los márgenes o generalmente, 0 en los 4 costados). 

Así, parece que sí puedo juntar las piezas que sean paralelas (no hijas de) (haciendo por ejemplo que una tenga anchors de [0 - 0.7]  y otra de [0.7 - 1] )  Así, aunque la ventana se escale diferente, parece que las proporciones se mantienen más o menos (obviamente cambian la longitud de los textos, pero al menos no se separan ni solapan las piezas más).

 

Por otra parte, he leído que es aconsejable separar los elementos en distintos Canvas según la frecuencia con la que se modifica. Yo ahora mismo lo tengo así.

|--- Menu Pausa
	|---SubCanvas Principal
	|---SubCanvas Settings
		|---SubCanvas Gameplay
		|---SubCanvas Control
		|---SubCanvas Vídeo
		|---SubCanvas Audio

|--- Menu Personaje
	|---SubCanvas General
	|---SubCanvas Estado
	|---SubCanvas Coleccionables
	|---SubCanvas Diario

Están activos al inicio (por lo que en teoría, se pre-carga todo antes de empezar el nivel, cuando lo hacen, se desactivan sólo los componentes Canvas renderer, y los reactivo según las opciones.

Ahora, si debería dividir piezas que se actualizan mucho, (como relojes o la descripción del diario que cambia con el click de cada entrada). Supongo que eso sería ¿un nuevo SubCanvas más?. Para que cuando estos se recreen, no fuercen la recreación de los demás componentes. O_ò (¿en teoría?).

 

También veo que tengo que hacer 2 códigos más, uno para que las entradas del diario se creen automáticamente (es un poco lata meter cada botón e ir cambiado dimensiones aquí y allá @_@ ) y por otro lado, algún script que actualice los textos para el cambio de idioma. aains... paciencia...

Share this post


Link to post
Share on other sites

×
×
  • Create New...