Noticias

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

[UI] ¿Cómo se ajusta el contenido del ScrollView al texto dinámico?

Iniciado por Braltor, Abril 16, 2018, 01:31:52 AM

Tema anterior - Siguiente tema
Esto es para Unity 2017.3.1 donde parece que no funciona ninguna solución que he encontrado en la web.
 
La idea es tener un texto dinámico que puede tomar cualquier altura, y se quiere meter en un scrollview para poder desplazarlo. El contenido del scroll debería ajustarse al tamaño del texto para que pueda desplazarse en su totalidad.
 
Uno pensaría que la solución más simple es añadirle al texto un ContentSizeFitter con su Vertical Fit = Preferred Size. Eso ajusta el tamaño al total del texto. Luego se coloca ese texto dentro del Content al que también le ponemos un ContentSizeFitter al Content con su Vertical Fit...
 
Pues NO, no se ajusta al tamaño del texto... El fitter del content debería tomar la altura ajusta del texto, pero no lo hace. ¿Hay un problema en el orden de los cálculos?
 
¿Alguien lo ha logrado en la última versión?
 
Como plan B puedo hacer el scroll yo mismo con las interfaces de Drag, pero sería bueno poder hacerlo de forma natural.

Cita de: Braltor date=1523835112Esto es para Unity 2017.3.1 donde parece que no funciona ninguna solución que he encontrado en la web.
   
   
      La idea es tener un texto dinámico que puede tomar cualquier altura, y se quiere meter en un scrollview para poder desplazarlo. El contenido del scroll debería ajustarse al tamaño del texto para que pueda desplazarse en su totalidad.
   
   
      Uno pensaría que la solución más simple es añadirle al texto un ContentSizeFitter con su Vertical Fit = Preferred Size. Eso ajusta el tamaño al total del texto. Luego se coloca ese texto dentro del Content al que también le ponemos un ContentSizeFitter al Content con su Vertical Fit...
   
   
      Pues NO, no se ajusta al tamaño del texto... El fitter del content debería tomar la altura ajusta del texto, pero no lo hace. ¿Hay un problema en el orden de los cálculos?
   
   
      ¿Alguien lo ha logrado en la última versión?
   
   
      Como plan B puedo hacer el scroll yo mismo con las interfaces de Drag, pero sería bueno poder hacerlo de forma natural.
   


Lo estoy usando y funciona perfectamente con ContentSize Fitter -
 
Recuerda que para que este funcione no tiene que tener ScrollRect en el padre.

Cita de: francoe1 date=1523838328Lo estoy usando y funciona perfectamente con ContentSize Fitter -
   
   
      Recuerda que para que este funcione no tiene que tener ScrollRect en el padre.
   


¿Y cómo lo desplazas dentro de un area más pequeña que el mismo texto sin usar ScrollRect?

A lo que me refiero es que la estructura correcta sería la siguiente ->
 
-ROOT (GameObject)

--Object (ScrollRect)

--Object (Mask Rect)

---Object (Text, Content Size Fitter)

mmm... era reemplazando el content por el texto, que bien
 
gracias @francoe1 !!

Cita de: francoe1 date=1523840625A lo que me refiero es que la estructura correcta sería la siguiente ->
   
   
      -ROOT (GameObject)
      --Object (ScrollRect)
      --Object (Mask Rect)
      ---Object (Text, Content Size Fitter)
   


Directo al Hall Of Fame!

Investigando un poco más sobre optimización del scroll he encontrado esta joya:
 


   
tart=1790&feature=oembed" width="480">

 
 

Si vas a tener un Scroll de 1000 items.. opta por hacer un Pool de Items con el doble de la lista que podría ser mostrada y reutiliza los elementos :)

No hace falta ver el video, ¿quieres optimizar esa mierda que ellos llaman UI?, entonces tira unity a la basura y pasate a unreal xDDDD


Fuera de bromas, algunos "tips" me parecen de sentido comun o de cajon, llamadlo como querais.....
 
Abusar de los layouts es perfecto para que la UI te vaya como el culo de lenta, añadir muchos canvas, etc, etc. No hace falta ser un experto para saber que si abusas de algo lo mas facil y mas seguro es que estes sobrecargando el sistema.
 
Yo siempre aplico la gran maxima, "menos es mas", y trato de evitar todos los componentes al maximo tanto si conozco el sistema con el que trabajo como si soy nuevo. Y por supuesto, darle al profiler siempre para saber si la cosa sigue controlada o me estoy pasando.

Claro, porque las cosas hay que usarlas en su justa medida y con sentido común...
 
¿Qué necesidad hay de tener una lista milenaria infinitamente larga de ítems en un Videojuego? ¿Se ha contemplado la idea de gestionar esos datos de otro modo, acercando más el diseño al concepto de Videojuego? Pues eso mismo....
 
 

Etiquetas: