Version: 2021.1
Asset de Texto
Procedural Mesh Geometry

Font (Fuente)

Fonts can be created or imported for use in the Text Mesh Component.

Importando archivos de Fuente (font)

Para agregar una fuente a su proyecto usted necesita colocar el archivo fuente en su carpeta de Assets. Unity luego automáticamente lo va a importar. Los formatos de fuentes soportados son TrueType Fonts (archivos .ttf) y OpenType Fonts (archivos .otf).

Para cambiar el Size (tamaño) de la font (fuente), resalte la en el Project View y usted tendrá un número de opciones en los Import Settings (ajustes de importación) en el Inspector.

Ajustes de importación para una fuente
Ajustes de importación para una fuente
Propiedad: Función:
Font Size El tamaño de la fuente, basado en los tamaños configurados en cualquier procesador de palabra.
Rendering mode El modo de renderización de la fuente, el cual le dice a Unity cómo aplicar un suavizador a los glifos.
Character El conjunto de caracteres de la fuente en ser importada a la textura fuente
Configurar este modo a Dynamic (dinámico) causa Unity a incrustar los datos de la fuente en sí y renderizar los glifos de la fuente en tiempo de ejecución (ver abajo).

Importar los ajustes específicos a dynamic fonts (fuentes dinámicas)

Propiedad: Función:
Include Font Data Estos ajustes controlan el empaque de la fuente cuando es utilizada con la propiedad Dynamic font (fuente dinámica). Cuando es seleccionado, el TTF es incluido en el output de la construcción. Cuando no es seleccionado, se asume que el usuario final tendrá la fuente ya instalada en su maquina. Tenga en cuenta que las fuentes están sujetas a derechos de autor y usted debería solamente incluir fuentes que usted tenga licencia o ha creado por usted mismo.
Font Names Una lista de las fuentes fallback (alternativas) para ser utilizadas cuando las fuentes o caracteres no están disponibles (ver abajo).

Después de que usted importe la fuente, usted puede expandir la fuente en la vista del proyecto para ver que se ha auto-generado algunos assets. Dos assets son creados durante la importación: “font material” y “font texture”. A diferencia de muchas aplicaciones con las que usted podría ser familiar, las fuentes en Unity son convertidas a texturas, y los glifos que usted muestre serán renderizados utilizando quads de textura.

Fuentes dinámicas

Cuando usted configura el despegable Characters en los ajustes de importación a Dynamic, Unity no va a pre-generar una textura con todos los caracteres de la fuente. En vez, va a utilizar un motor de renderizado de una fuente FreeType para crear la textura sobre la marcha. Esto tiene la ventaja de que puede ahorrar en el tamaño de descargar y memoria de la textura, especialmente cuando usted está utilizando una fuente que es comúnmente incluida en los sistemas del usuario, por lo que usted no tendrá que incluir los datos de la fuente, o cuando usted necesite soportar lenguajes de Asía o tamaños grandes de fuente (lo cual haría que las texturas fuente serían muy grandes cuando se utilice texturas de fuente normales).

Cuando Unity intenta renderizar texto con una fuente dinámica (dynamic font), pero no puede encontrar la fuente (ya que Include Font Data no fue seleccionado, y la fuente no está instalado en la maquina del usuario), o la fuente no incluye el glifo requerido (como al intentar renderizar texto en manuscritos de Asía oriental utilizando una fuente latina, o cuando se utilice texto con estilo negrilla/itálico), entonces luego va a intentar cada una de las fuentes mencionadas en el campo Font Names, para ver si puede encontrar una fuente que coincida con el nombre de la fuente en el proyecto (con los datos de la fuente incluidos) o instalado en la maquina de usuario la cual tiene el glifo requerido. Si ninguna de las fuentes fallback listadas está presente y tienen el glifo requerido, Unity va a fallback a una lista universal de fuentes fallback, la cual contiene varias fuentes internacionales comúnmente instaladas en la plataforma en ejecución.

Tenga en cuenta que algunas plataformas destino (WebGl, algunas consolas) no tienen fuentes predeterminadas OS a las cuales Unity puede acceder para renderizar texto. Para aquellas plataformas, Include Font Data será ignorado, y los datos de la fuente siempre van a estar incluidos. Todas las fuentes en ser utilizadas como fallbacks deben ser incluidas en el proyecto, por lo que si usted necesita renderizar texto internacional, o versiones en negrilla/itálica de una fuente, usted necesita agregar un archivo fuente que tiene los caracteres requeridos al proyecto, y configurar esa fuente en la lista de Font Names de otras fuentes que deberían ser utilizadas como fallbacks. Si las fuentes están correctamente configuradas, las fuentes fallback serán listadas en el inspector Font Importer, como References to other fonts in project (referencia a otras fuente en el proyecto).

Asset fuente por defecto

El asset font (fuente) predeterminado es un dynamic font (fuente dinámica) que está configurada para utilizar Arial. Si Unity no puede encontrar la fuente Arial en su computador (por ejemplo, si usted no lo tiene instalado), este va a fall back (respaldo) a una fuente agrupada con Unity llamada Liberation Sans.

Liberation Sans se ve como Arial, pero no incluye tipos de fuente en negrilla o itálicos, y solo tiene un conjunto de caracteres de latin básicos - por lo que el texto estilado o caracteres no latines van a fall back a otras fuentes o van a fallar en ser renderizadas. Sin embargo, tiene una licencia que le permite estar en las construcciones de los reproductores.

Fuentes personalizadas

Para crear una fuente personaliza seleccione ‘Create->custom font’ desde la ventana del proyecto. Esto va a agregar un asset fuente personalizado a la librería de su proyecto.

El campo Ascii Start Offset es un decimal que define el indice Ascii con el cual le gustaría a usted comenzar su indice Character Rects. Por ejemplo, si su Ascii Start Offset es configurada a 0, entonces la letra en mayúscula A estará en el indice 65 pero si el Ascii Start Offset es configurado a 65, entonces la letra A estará en el indice 0. Usted puede consultar la tabla Ascii aquí pero usted debería tener en cuenta que las fuentes personalizadas utilizan el sistema numérico decimal ascii.

Tracking se puede configurar para modificar qué tan cerca estará cada carácter del siguiente carácter en la misma línea y Line spacing se puede configurar para definir qué tan cerca estará cada línea de la siguiente.

Para crear un material de una fuente, usted va a necesitar importar su fuente como una textura, luego aplicar la textura a un material, y luego arrastrar su material de la fuente a la sección Default Material .

La sección Character Rects es dónde cada carácter de su fuente está definido.

El campo Size es para definir cuantos caracteres hay en su fuente.

Dentro de cada Elemento hay un campo indice para el indice ascii del carácter. Este será un entero (integer) que representa el carácter en este elemento.

Para trabajar con los valores UV usted necesita averiguar cómo sus caracteres están en posición en una escala de 0 a 1. usted divide 1 por el número de caracteres en una dimensión. Por ejemplo, si usted tiene una fuente y las dimensiones de la imagen son 256x128, 4 caracteres a lo largo, 2 para abajo (entonces 64x64), luego la anchura UV será 0.25 y la altura UV será 0.5.

Para UV X y Y, simplemente es una cuestión de decidir qué caracteres usted quiere y multiplicar los valores de la anchura y altura por la columna/fila de la letra.

El tamaño Vert es basado en el tamaño pixel de los caracteres e.g sus caracteres cada uno son 128x128, colocando 128 y –128 al Width (anchura) y Height (altura) Vert va a dar letras proporcionalmente adecuadas. Vert Y debe ser negativo.

Advance será la distancia horizontal deseada desde el origen de este carácter hasta el origen del siguiente carácter en píxeles. Se multiplica por Tracking al calcular la distancia real.

Ejemplo de un inspector de una fuente personalizada con valores
Ejemplo de un inspector de una fuente personalizada con valores

Soporte Unicode

Unity tiene un soporte completo a unicode. El texto Unicode le permite a usted mostrar caracteres de Alemania, Francia, Dinamarca o Japón los cuales usualmente no son soportados en el conjunto de caracteres ASCII. Usted también puede ingresar diferentes caracteres con un propósito especial como signos de flechas o el signo de la tecla opción, si su fuente la soporta.

To use unicode characters, choose either Unicode or Dynamic from the Characters drop-down in the Import Settings. You can now display unicode characters with this font. If you are using a Text Mesh, you can enter unicode characters into the Component’s Text field in the Inspector.

You can also use unicode characters if you want to set the displayed text from scripting. The C# compiler fully supports Unicode based scripts. You have to save your scripts with UTF–16 encoding. Now you can add unicode characters to a string in your script and they will display as expected in UnityGUI or a Text Mesh.

Tenga en cuenta que los pares suplentes no son soportados.

Cambiar el color de la fuente

Hay diferentes maneras de cambiar el color de su fuente mostrada, dependiendo en qué tanto la fuente es utilizada.

Text Mesh

If you are using a Text Mesh, you can change its color by using a custom Material for the font. In the Project View, click on Create > Material, and select and set up the newly created Material in the Inspector. Make sure you assign the texture from the font asset to the material. If you use the built-in GUI/Text Shader shader for the font material, you can choose the color in the Text Color property of the material.

UnityGUI

Si usted está utilizando el scripting UnityGUI para mostrar su fuente, usted puede tener mucho control sobre el color de la fuente debajo de diferentes circunstancia. Para cambiar el color de la fuente, usted crea un GUISkin desde Assets > Create > GUI Skin, y define el color para el estado de control especifico, e.g. Label > Normal > Text Color. Para más detalles, por favor leer la página GUI Skin.

Recomendaciones

  • Para mostrar una fuente importada seleccione la fuente y escoja GameObject > Create Other > 3D Text.
  • Usted puede reducir el tamaño de textura generado para las fuentes usando sólo los caracteres en minúsculas y en mayúsculas.
Asset de Texto
Procedural Mesh Geometry