Buenas a todos.
Os molesto porque llevo muchas horas haciendo pruebas con esto y aún no he dado con la solución adecuada.
El caso es que tengo un Scrollview donde le pongo elementos a pelo y funciona perfectamente. Ahora quiero quitar esos elementos a pelo y meterlos dinámicamente mediante script. El caso es que no consigo que los mismos queden a la vista en el gameobject content del ScrollView, ya que se quedan fuera pese a que estoy tratando de usar como referencia el anc***dPosition del padre (gameobject content).
Os comento que no uso un GridLayout dentro del ScrollView porque mis elementos tienen alturas variables. Básicamente, lo que estoy tratando de hacer es una interfaz tipo Whatsapp, es decir, bocadillos de texto que quedan unos encima/debajo de otros según se va sucediendo una conversación.
Si alguien pudiera darme una pista, le estaría muy agradecido.
Saludos a todos.
Trabajar en los elementos de interfaz puede ser quiza lo mas complejo en el desarrollo de un videojuego, mas aun cuando hay que rellenar dinamicamente algun elemento.
Tienes que calcular unitariamente cada elemento que agregas al contenido del scrollview, para determinar su altura, ancho, y manejar la posicion relativa que ocupa dentro del contenedor del que debe ser "hijo" usando dichos valores de ancho y altura para no solapar los elementos dentro del contenedor, asi como su orden de insercion para determinar su posicion relativa. Y a su vez controlar dinamicamente el tamaño del contenedor para que permita el scroll, ya sea horizontal, vertical, o ambos, alterando el valor de este mediante su "deltaSize".
Espero haberme hecho entender y que te sirva de ayuda. ¡¡Saludos!!
Hola, @
Chaskarron Gracias por la respuesta. Básicamente lo que comentas es mi idea, mi principal problema es que no entiendo qué valor de referencia necesito. Me explico: mi idea era coger el anc***dPosition del contenedor y usarlo como base para posicionar cada elemento de la interfaz dentro del scroll. Sin embargo, el valor del anc***dPosition no me está resultando útil ya que si lo uso como referencia me coloca los objetos en una zona fuera de la interfaz del scroll.
No sé si he sabido explicarme. Gracias, en cualquier caso.
Tienes que leer la propiedad "rect" del RectTransform del contenedor, cuyos valores width y height son las dimensiones en pixels respectivamente, y modificarlo mediante la propiedad "deltaSize" del RectTransform, ya que todo lo que quieras hacer mediante el GameObject no resultara. Espero que sea esa la solucion a tu dilema. ¡¡Saludos!!