Los Fonts pueden ser creados o importados para uso ya sea desde GUI Text o el Text Mesh Components.
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.
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.
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).
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.
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.
Kerning puede ser configurado para definir qué tan cerca cada carácter estará al siguiente carácter en la misma linea y Line spacing puede estar configurada para definir qué tan cerca cada linea estará a 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.
Width será la altura de su carácter en pixeles.
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.
Para utilizar caracteres en unicode, escoja ya sea Unicode o Dynamic desde el desplegable Characters en los Ajustes de Importación. Usted puede mostrar caracteres unicode con esta fuente. Si usted está utilizando un GUIText o Text Mesh, usted puede ingresar caracteres unicode al campo Text del componente en el Inspector.
Usted también puede utilizar caracteres unicode si usted quiere configurar el texto mostrado desde scripting. Los compiladores de Javascript y C# soportan completamente scripts basados en Unicode. usted puede guardar sus scripts con una codificación UTF–16. Ahora usted puede agregar caracteres unicode a un string en su script y luego mostrarlo como se espera en UnityGUI, un GUIText, or un Text Mesh.
Tenga en cuenta que los pares suplentes no son soportados.
Hay diferentes maneras de cambiar el color de su fuente mostrada, dependiendo en qué tanto la fuente es utilizada.
Si usted está utilizando un GUIText o un Text Mesh, usted puede cambiar su color al utilizar un Material personalizado para la fuente. En la Vista del Proyecto, haga click en Create > Material, y seleccione y configure el Material nuevo creado en el Inspector. Asegúrese de que usted asigne la textura desde el asset fuente al material. Si usted utiliza el shader GUI/Text Shader integrado para el material fuente, usted puede escoger el color en la propiedad Text Color del material.
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.