Por qué TextMeshPro y no Text#
El componente Text clásico (uGUI) se ve borroso al escalar y ofrece poco control. TextMeshPro (TMP) es el reemplazo oficial y el estándar actual: texto nítido a cualquier tamaño, contornos, sombras, degradados y texto enriquecido. En Unity 6 es la opción por defecto al crear texto.
La primera vez que usas TMP, Unity ofrece Window → TextMeshPro → Import TMP Essential Resources. Acéptalo: instala el shader y la fuente por defecto. Sin ellos, el texto no se ve bien.
El secreto: fuentes SDF#
TMP no guarda la fuente como píxeles, sino como SDF (Signed Distance Field): una representación que describe la distancia a los bordes de cada letra. Gracias a eso, la GPU redibuja el contorno perfectamente nítido a cualquier escala, y puede añadir contorno, sombra o brillo casi gratis.
Para usar tu propia tipografía: Window → TextMeshPro → Font Asset Creator, eliges el .ttf/.otf y generas un Font Asset SDF.
Crear y editar texto#
GameObject → UI → Text - TextMeshPro. En el Inspector controlas fuente, tamaño, alineación, Auto Size (ajuste automático al recuadro), espaciado y los efectos (Outline, Underlay/sombra) desde el material.
Texto enriquecido (rich text)#
TMP interpreta etiquetas dentro del propio texto:
<b>Vida:</b> <color=#ff4444>50</color>/100
Pulsa <sprite name="boton_A"> para <i>saltar</i>
<size=150%>¡NIVEL COMPLETADO!</size>Etiquetas útiles: <b> <i> <color> <size> <sprite> (iconos inline) <link> (zonas clicables) <align>. Perfecto para diálogos, tutoriales y textos de daño con estilo.
Cambiar el texto por código#
using UnityEngine;
using TMPro; // el namespace de TextMeshPro
public class Marcador : MonoBehaviour
{
[SerializeField] private TextMeshProUGUI etiquetaPuntos; // texto en un Canvas
private int puntos;
public void Sumar(int n)
{
puntos += n;
etiquetaPuntos.text = "Puntos: " + puntos; // acepta rich text también
}
}Hay dos componentes: TextMeshProUGUI para UI dentro de un Canvas (lo normal), y TextMeshPro (3D) para texto en el mundo (un cartel en la escena). Usa el UGUI para menús y HUD.
Errores frecuentes#
- Concatenar strings en el
Updatecada fotograma (genera basura GC): actualiza el texto solo cuando cambia el valor. - No importar los TMP Essentials y ver el texto raro o invisible.
- Usar el
Textclásico en proyectos nuevos: TMP es el estándar. - Mezclar
TextMeshPro(3D) donde queríasTextMeshProUGUI(UI) y no verlo en el Canvas.
Ponte a prueba#
Resumen#
TextMeshPro es el estándar de texto en Unity: nítido a cualquier tamaño gracias a las fuentes SDF, con rich text (<b>, <color>, <sprite>...) para estilo y efectos. Usa TextMeshProUGUI en el Canvas y cámbialo por código con .text (evitando concatenar cada fotograma). Importa los TMP Essentials la primera vez. Para varios idiomas, combínalo con localización.