El texto para los elementos UI y text meshes pueden ser incorporados por múltiples estilos de fuente y tamaños. El Rich text es soportado para ambos el sistema UY y el viejo sistema GUI legacy. Las clases Text, GUIStyle, GUIText y TextMesh tienen unas configuraciones Rich Text que instruyen a Unity para mirar por las etiquetas de markup dentro del texto. La función Debug.Log puede también utilizar estas etiquetas markup para aumentar los reportes de error de código. Las etiquetas no son mostrados pero indican cambios en el estilo par ser aplicados al texto.
El sistema de marcado está inspirado por HTML pero no está intencionado en ser estrictamente compatible con HTML estándar. La idea básica es que una sección del texto puede ser encerrado a dentro de un par de etiquetas de marcado:-
<b>No</b> nos entretiene
Como el ejemplo muestra, las etiquetas son solo piezas de texto dentro los caracteres del “corchete angular”. El texto dentro de la etiqueta denota su nombre (que en este caso es b). Tenga en cuenta que la etiqueta al final de la sección tiene el mismo nombre como el que está en el principio pero con un carácter barra / agregado. Las etiquetas no son mostradas al usuario directamente pero son interpretadas como instrucciones para estilar el texto que encierran. La etiqueta b usada en el ejemplo arriba aplica negrilla a la palabra “not”, entonces el texto aparecerá en pantalla como:-
No estamos sorprendidos
Una sección marcada de texto (incluyendo las etiquetas que la encierran) es referida como un element.
Es posible aplicar más de un estilo a una sección de texto al “nesting” un elemento adentro de otro
We are <b><i>definitely not</i></b> sorprendido
La etiqueta i aplica un estilo itálico, entonces esto sería presentado en la pantalla como
Definitivamente no nos entretiene
Tenga en cuenta que el orden de las etiquetas finales, que está en reversa a la de las etiquetas de partida. La razón de esto es quizás más clara si tenemos en cuenta que las etiquetas interiores no necesitan abarcar la totalidad del texto del elemento exterior
We are <b>absolutely <i>definitely</i> not</b> sorprendidos
que da
Nosotros absolutamente definitivamente no estamos sorprendidos
Algunas etiquetas tienen un efecto simple de todo-o-nada en el texto pero otras podrían permitir variaciones. Por ejemplo, la etiqueta color necesita saber qué color aplicar. Información como esta es agregada a las etiquetas mediante el uso de parameters:-
We are <color=green>green</color> con envidia
Tenga en cuenta que la etiqueta de finalización no incluye el valor del parámetro. Opcionalmente, el valor puede ser rodeado por signos de interrogación pero esto no es requerido.
La siguiente lista describe todas las etiquetas de estilo soportadas por Unity.
Tag | Description | Example | Notes |
---|---|---|---|
b | Renders the text in boldface. | We are <b>not</b> amused. | |
i | Renders the text in italics. | We are <i>usually</i> not amused. | |
size | Sets the size of the text according to the parameter value, given in pixels. | We are <size=50>largely</size> unaffected. | Although this tag is available for Debug.Log, you will find that the line spacing in the window bar and Console looks strange if the size is set too large. |
color | Sets the color of the text according to the parameter value. The color can be specified in the traditional HTML format. #rrggbbaa …where the letters correspond to pairs of hexadecimal digits denoting the red, green, blue and alpha (transparency) values for the color. For example, cyan at full opacity would be specified by | <color=#00ffffff>… | Another option is to use the name of the color. This is easier to understand but naturally, the range of colors is limited and full opacity is always assumed. <color=cyan>… The available color names are given in the table below. |
Nombre del Color | Valor Hex | Swatch |
---|---|---|
aqua (el mismo que el cian(cyan)) | #00ffffff |
|
negro | #000000ff |
|
azul | #0000ffff |
|
marrón | #a52a2aff |
|
cian(cyan) (el mismo que el aqua) | #00ffffff |
|
azul oscuro | #0000a0ff |
|
fucsia(fuchsia) (el mismo que magenta) | #ff00ffff |
|
verde | #008000ff |
|
gris | #808080ff |
|
azul claro | #add8e6ff |
|
limón | #00ff00ff |
|
magenta (el mismo que fuchsia) | #ff00ffff |
|
granate | #800000ff |
|
azul marino | #000080ff |
|
oliva | #808000ff |
|
naranja | #ffa500ff |
|
morado | #800080ff |
|
rojo | #ff0000ff |
|
plateado | #c0c0c0ff |
|
verde azulado | #008080ff |
|
blanco | #ffffffff |
|
amarillo | #ffff00ff |
material
Esto es solamente útil para meshes de texto y renderiza una sección del texto con un material especificado por el parámetro. El valor es un índice a la matriz del mesh de texto de los materias como es mostrado por el inspector.
We are <material=2>texturally</material> sorprendido
quad
Esto es solamente útil para meshes de texto y renderiza una imagen enlinea con texto. Toma parámetros que especifican el material a usar para la imagen, la altura de la imagen en píxeles, y otros cuatro que denotan un área rectangular de la imagen para mostrar. A diferencia de las otras etiquetas, quad no rodea una parte del texto y por lo tanto no hay ninguna etiqueta final - el carácter de barra se coloca al final de la etiqueta inicial para indicar que se trata de “cierre automático”.
<quad material=1 tamaño=20 x=0.1 y=0.1 anchura=0.5 altura=0.5 />
Esto selecciona el material en posición en la matriz del material renderizado y establece la altura de la imagen a 20 píxeles. El área rectangular de imagen comienza en los valores dados x,y, del ancho y altura, que son todos dados como un fracción de la anchura sin escala, y la altura de la textura.
El Rich text es desactivado por defecto en el sistema GUI del editor pero puede ser activado explícitamente usando un GUIStyle personalizado. La propiedad richText debe ser establecida a true y el estilo pasado a la función GUI en cuestión:-
GUIStyle style = new GUIStyle ();
style.richText = true;
GUILayout.Label("<size=30>Some <color=yellow>RICH</color> text</size>",style)