Aprovecha al máximo TextMesh Pro en Unity 2018

ALESSIA NIGRETTI / UNITY TECHNOLOGIESContributor
Oct 16, 2018|7 minutos
Aprovecha al máximo TextMesh Pro en Unity 2018
Para tu comodidad, tradujimos esta página mediante traducción automática. No podemos garantizar la precisión ni la confiabilidad del contenido traducido. Si tienes alguna duda sobre la precisión del contenido traducido, consulta la versión oficial en inglés de la página web.

Ya sea que estés trabajando en un FPS, un juego de rompecabezas o una experiencia de VR , uno de los aspectos que debes cuidar es la interfaz de usuario. Afortunadamente, a partir de marzo de 2017, TextMesh Pro se unió a la familia Unity. ¡Esto significa que hacer que tu interfaz de usuario en Unity se vea genial se ha vuelto mucho más fácil y rápido!

Para aquellos de ustedes que no han seguido estos desarrollos, TextMesh Pro es un reemplazo para los componentes de texto predeterminados de Unity. Tiene el mismo rendimiento (incluso más, en algunos casos) y utiliza una técnica de renderizado completamente diferente llamada Signed Distance Field (SDF), originalmente utilizada por Valve en Team Fortress 2. Además de tener el poder de hacer que su texto se vea genial sin mucho esfuerzo, TextMesh Pro también le brinda un control mucho más avanzado sobre él, a través de un inspector o scripts. ¡En esta publicación, veremos cómo aprovechar al máximo esta increíble herramienta!

Hay dos razones principales por las que es una gran idea comenzar tus proyectos usando TextMesh Pro. Primero, mejoras visuales. Gracias al renderizado SDF, es fácil cambiar la apariencia del texto sin tener que recrear su fuente. Cada componente de TextMesh Pro tiene un material adjunto que puedes modificar para modificar el estilo de tu texto. En segundo lugar, un mejor control. El componente TextMesh Pro incluye todas las variables que puedes encontrar en el componente de texto normal y mucho más. Y si esto no fuera suficiente, ¡sepa que TextMesh Pro es utilizado actualmente por más de un cuarto de millón de desarrolladores en todo el mundo!

TextMesh Pro vs Text predeterminado

Al trabajar con el texto predeterminado de Unity , es posible que hayas notado que a veces estirar o cambiar el tamaño del objeto hace que se vea borroso. Esto se debe a que el texto no contiene información de cómo se vería cuando se redimensionara y, por lo tanto, Unity tiene que "improvisar" e intentar generar los píxeles faltantes sobre la marcha. Debido a la diferente técnica de renderizado que utiliza TextMesh Pro, esto ya no es un problema. SDF se basa en el principio de renderizar un Atlas de fuentes a alta resolución para que la fuente siempre tenga información sobre cómo se vería un carácter al cambiar de tamaño.

Imagen

Con TextMesh Pro puedes importar cualquier archivo de fuente y crear tu propio recurso de fuente (Ventana > TextMesh Pro > Creador de recursos de fuente). Esto le permite elegir la resolución para su Font Atlas (que determinará qué tan efectiva será la representación SDF para su texto). Obviamente, cuanto menor sea la resolución que elija, más rápido se generará el Atlas de fuentes.

Imagen

Dado que la fuente tiene información sobre cómo se vería en diferentes tamaños, también puede reconstruir su contorno y sombra proyectada a partir del Atlas de fuentes. ¡Simplemente modifique las propiedades del material y observe cómo su texto cambia su apariencia por completo!

Mejor control

Como hemos visto, TextMesh Pro ofrece un texto de gran apariencia. Pero ¿de qué sirve un texto bonito si no tenemos control sobre él? El componente TextMesh Pro tiene opciones que le permiten personalizar el tamaño de fuente, el espaciado, la alineación, el kerning o habilitar el tamaño automático y ajustar su texto en un contenedor. Los dos últimos, en particular, le brindan un gran control para trabajar con diferentes plataformas o diferentes idiomas, ya que permiten que su texto se redimensione automáticamente dependiendo de un contenedor de texto determinado sin la necesidad de ningún script. Sin embargo, si desea cambiar estas configuraciones en tiempo de ejecución, puede acceder a todas las variables en los componentes de TextMesh Pro desde la API de TextMeshPro.

Para una capa adicional de personalización, también puede agregar el componente Herramienta de depuración de información de texto a su objeto de texto para que pueda representar visualmente caracteres, palabras, enlaces, líneas, etc.

Imagen

Si desea ahorrar tiempo al reformatear su texto cada vez que inserta un encabezado, un título, una cita, etc., puede configurar una hoja de estilo para cualquier propósito específico. Un ejemplo podría ser inyectar una decoración a un encabezado. Para crear una hoja de estilo, seleccione Crear > TextMesh Pro > Hoja de estilo. Puede configurar este nuevo activo como su hoja de estilo predeterminada desde Editar > Configuración del proyecto > Configuración de TextMesh Pro.

Imagen
Texto enriquecido

Además de controlar la apariencia del texto desde el inspector o un script, puedes controlarlo desde el propio campo de texto. Si está familiarizado con HTML o XML, puede personalizar la apariencia de su texto mientras escribe. Si no lo es, ¡simplemente lea la guía sobre cómo usar texto enriquecido con TextMesh Propara comenzar! Esto es particularmente útil en los casos en los que desea utilizar múltiples estilos, tamaños y materiales en el mismo objeto de texto.

Imagen
Personalización de materiales

Otra forma de hacer que TextMesh Pro se vea genial es aplicar un Surface Shader a su texto. Esto permitirá que la iluminación de la escena afecte el texto. En el siguiente ejemplo, algunas luces puntuales en tiempo real se mueven alrededor de la escena y afectan el texto.

Imagen

Las propiedades del material le brindan la opción de personalizar configuraciones como Cara, Contorno, Bisel, Iluminación, BumpMap, EnvMap, Resplandor y configuraciones de depuración.

Una vez que haya creado un material con el que esté satisfecho, puede crear un ajuste preestablecido de material que podremos reutilizar en cualquier momento, específicamente para el recurso de fuente que estemos usando. Podemos hacerlo haciendo clic derecho en el nombre del material y seleccionando “Crear ajuste preestablecido de material”. Esto creará un activo que podemos seleccionar desde nuestro componente TextMesh Pro > Configuración de fuente > Ajuste preestablecido de material.

Sistema de respaldo

Si ha generado un Atlas de fuentes al que le faltan ciertos caracteres, TextMesh Pro hará que el carácter vuelva a un glifo predeterminado cada vez que se escriba. Puede cambiar este glifo yendo a Editar > Configuración del proyecto > Configuración de TextMesh Pro. Como alternativa, puede configurar uno o más recursos de fuentes a los que TextMesh Pro recurrirá si el carácter no se encuentra en el Atlas principal. Por motivos de optimización, tiene sentido mantener el Atlas de fuentes principal en una resolución más alta y todos los Atlas de respaldo en una más baja.

Además de eso, puedes usar la configuración de TextMesh Pro para configurar rutas de recursos para fuentes y materiales o activos de sprites. Al usar texto enriquecido, puedes insertar un Sprite dependiendo de cuáles estén disponibles en el recurso de Sprite principal que hayas definido en la Configuración. La forma más sencilla de hacerlo es importar una hoja de sprites, luego cortarla en el Editor de sprites, hacer clic derecho en el activo y seleccionar Crear > TextMesh Pro > Activo de sprites. Desde este nuevo activo, puedes personalizar configuraciones como el desplazamiento o el pivote. De la misma manera, puedes configurar una serie de recursos de sprites de respaldo a los que recurrir si no se encuentra un sprite entre los recursos de sprites principales.

Imagen
Resumiendo...

En términos de rendimiento, como ya hemos mencionado, TextMesh Pro funciona de manera similar al texto predeterminado: todavía se renderiza en cuadrantes, por lo que es tan eficiente como usar una fuente de mapa de bits. Tampoco hay asignación de memoria en tiempo de ejecución: TextMesh Pro solo asignará espacio para los objetos de texto cuando presione reproducir. Si aumenta el número de caracteres en una cantidad significativa, solo se realiza una reasignación; si disminuye el número de caracteres, no se realiza ninguna reasignación, a menos que se reduzca en al menos 256 caracteres. Y en términos de mejoras, puedes obtener mejores resultados para estilos como Contorno y Sombra paralela simplemente gracias a la técnica de renderizado SDF utilizada por TextMesh Pro.

La mayor parte de lo mencionado en este blog está disponible como una escena de ejemplo cuando importa TextMesh Pro a su proyecto (desde Ventana > Administrador de paquetes > TextMesh Pro > Instalar desde Unity 2018.1 en adelante). Te recomiendo encarecidamente que les eches un vistazo antes de empezar a utilizar TextMesh Pro, ya que su contenido puede responder la mayoría de las preguntas que tienes. Sin embargo, si desea proporcionar sus comentarios o aún tiene alguna pregunta, puede hacerlo a través de los foros.