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 58,34€ de 150,00€

  • Servidor: Dominio.com y Hosting Web
  • Mantenimiento de los Foros
  • Contenido y Servicios Extras
  • Mantenimiento para Redes Sociales
Sign in to follow this  
totemalf

Mover un textbox dependiendo del tamaño de otro

Recommended Posts

Buenas, 

he vuelto  a trastear Unity desde hace mucho tiempo, con objetivo de hacer una app para recolección de ciertos datos agrícolas. He pensado en hacerlo todo con UI . El primer problema que me he encontrado es  el siguiente: tengo una serie de textbox a la izquierda, con los nombres de los Traits que quiero tomar, y una serie de inputfileds a la derecha de cada uno, para introducir los datos recolectados. El caso es que dependiendo de la longitud del texto de los textbox, quisiera que los inputfileds se muevan hacia la derecha. (La idea es que puedas cambiar el texto del textbox desde la app)

Lo que se me ha ocurrido es crear un script para acceder al componente rect transform y ampliarlo dependiendo del contenido del textbox, aunque no se como acceder al rect transform desde el script, y no se tampoco si puedo saber desde el script la longitud que ocupa el texto para dársela al textbox.

Entiendo que si consigo hacer esto primero, bastaría con guardar la diferencia entre el tamaño inicial del textbox y el tamaño final, y sumar esa diferencia a la posición del inputfield. 

Bueno, quizás haya otra forma más sencilla de hacer esto, y estoy planteándolo de forma errónea. Cualquier orientación al respecto me vendría genial. Muchas gracias!!

Edited by totemalf

Share this post


Link to post
Share on other sites

No es fácil calcular el tamaño de un texto basado en su fuente. Prueba a mirar que opciones te ofrece el TextMeshPro a nivel de API.

Share this post


Link to post
Share on other sites

Gracias. Vale, si no puedo calcular dependiendo del texto, eso me desmonta la idea incial. Tiene que haber otra forma de hacer esto. Salu2

Vale, he añadido un componente llamado "Content Size Fitter", poniendo en el campo horizontal "preferred size", me ha ajustado el rect transform al tamaño del texto. Supongo que ya tengo un punto de partida :P

No obstante, me gustaría saber también cual es el modo de acceder al ancho y alto del rect transform desde el script para modificarlo manualmente si fuese necesario.

Gracias!

Share this post


Link to post
Share on other sites

Solo para mencionarlo, con el viejo GUI ( IMGUI) se podía calcular el tamaño exacto en píxeles de un dado GUIContent con esto:

https://docs.unity3d.com/ScriptReference/GUIStyle.CalcSize.html

Se que no tiene nada que ver para este caso, pero sirve para hacer lo querés en editores/inspectores y demás.

En tu caso el input field deberá leer el tamaño horizontal del texto de al lado y ajustarse, en pos, ancho, tamaño de fuente, etc. El "Content Size Fitter" no lo conozco pero si hace lo que querés bienvenido sea.

4 hours ago, totemalf said:

No obstante, me gustaría saber también cual es el modo de acceder al ancho y alto del rect transform desde el script para modificarlo manualmente si fuese necesario.

Con esto quizás:

https://docs.unity3d.com/ScriptReference/RectTransform-sizeDelta.html

Share this post


Link to post
Share on other sites

Muchas gracias! Con esta información ya tengo para ir trapicheando, a ver si consigo el resultado deseado. Saludos!

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...