Noticias

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

Temas recientes

Mover un textbox dependiendo del tamaño de otro

Iniciado por totemalf, Octubre 06, 2019, 09:33:28 PM

Tema anterior - Siguiente tema
Octubre 06, 2019, 09:33:28 PM Ultima modificación: Octubre 06, 2019, 09:47:32 PM por totemalf
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!!

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.

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!

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.
 
Cita de: totemalf date=1570391224No 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

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

Etiquetas: