Instalación
May 24, 2026 · View on GitHub
Crea paletas de colores y componentes para cambiar colores específicos en elementos visuales específicos. Muy útil para UI.
Características
- ✔️ Nombrar colores
- ✔️ Crear temas personalizados con nombres
- ✔️ Agregar tantos colores como necesites
- ✔️ Nombrar temas como quieras
- ✔️ Cambiar tema en cualquier momento por nombre
- ✔️ Vincular color a:
Image,SpriteRenderer,TextMeshPro, etc - ✔️ Forma fácil de agregar vinculador de color personalizado con una nueva clase C# con solo unas pocas líneas de código
- ✔️ Renombrar color incluso después de vincular a un componente, sin enlaces rotos
Estado de estabilidad
| Versión Unity | Prueba Editor | Prueba Player | Prueba Build |
|---|---|---|---|
| 2022.3.62f3 | |||
| 6000.3.9f1 |
Instalación
Opción 1 - Instalador
- ⬇️ Descargar Instalador
- 📂 Importar instalador al proyecto Unity
- Puede hacer doble clic en el archivo - Unity lo abrirá
- O: Puede abrir Unity Editor primero, luego hacer clic en
Assets/Import Package/Custom Package, luego elegir el archivo
Opción 2 - OpenUPM-CLI
- ⬇️ Instalar OpenUPM-CLI
- 📟 Abrir línea de comandos en la carpeta del proyecto Unity
openupm add extensions.unity.theme
Uso
- Ir a
Window/Unity-Theme - Personalizar paletas de colores como desees
- Agregar componentes
ColorBinderal GameObject de destino
Vinculador de Color
Un componente que vincula un color a un objetivo específico, como Image, SpriteRenderer, TextMeshPro, o cualquier otra cosa.
Hay una lista de vinculadores de color incorporados:
- ✔️ Light
- ✔️ Image
- ✔️ Button
- ✔️ Shadow
- ✔️ Toggle
- ✔️ Outline
- ✔️ Renderer
- ✔️ Selectable
- ✔️ TextMeshPro
- ✔️ LineRenderer
- ✔️ MeshRenderer
- ✔️ SpriteRenderer
- ✔️ SkinnedMeshRenderer
- ✔️ SpriteShapeRenderer
Paletas de colores
Modifica paletas, respuesta instantánea con todos los GameObjects conectados.
API de C#
Colores
using Unity.Theme;
Theme.Instance.AddColor("Primary", "#6750A4");
Theme.Instance.AddColor("Primary", Color.white);
Theme.Instance.SetColor("Primary", "#6750A4");
Theme.Instance.SetColor("Primary", Color.white);
Theme.Instance.SetOrAddColor("Primary", "#6750A4");
Theme.Instance.SetOrAddColor("Primary", Color.white);
Theme.Instance.RemoveColorByName("Primary");
Theme.Instance.RemoveColor(colorData);
Theme.Instance.RemoveAllColors();
Temas
using Unity.Theme;
Theme.Instance.AddTheme("Light");
Theme.Instance.SetOrAddTheme("Light");
Theme.Instance.CurrentThemeName = "Light";
Theme.Instance.CurrentThemeIndex = 0;
Theme.Instance.RemoveTheme("Light");
Theme.Instance.RemoveAllThemes();
Crear un ColorBinder personalizado
Si necesita vincular color a otra cosa, puede extender desde BaseColorBinder como se indica a continuación.
using UnityEngine;
using TMPro;
namespace Unity.Theme.Binders
{
[AddComponentMenu("Theme/TextMeshPro Color Binder")]
public class TextMeshProColorBinder : GenericColorBinder<TextMeshProUGUI>
{
protected override void SetColor(TextMeshProUGUI target, Color color)
=> target.color = color;
protected override Color? GetColor(TextMeshProUGUI target)
=> target.color;
}
}
Otros
- Constructor de paleta de colores de Material Design V3 de Google
Migración desde la versión 2.x.x
La versión 3.x.x o más reciente tiene una estructura de base de datos diferente, por lo que necesita migrar sus datos manualmente si desea mantener los vinculadores existentes conectados al color correcto. Los vinculadores utilizan GUIDs para conectarse a los colores.
❗❗❗Por favor, siga el orden exacto de los pasos
Paso 1
Cerrar el proyecto Unity para evitar cualquier pérdida de datos.
Paso 2 - copia de seguridad
- Hacer una copia de seguridad de
Assets/Resources/Unity-Theme Database.asset, colocarla fuera del proyecto. - Hacer una captura de pantalla de los colores en cada tema para reproducirlos más tarde con el selector de color.
Paso 3 - plantilla de base de datos
- Descargar Unity-Theme-Database.json.
- Guardarlo en
Assets/Resources/Unity-Theme-Database.json. - Usarlo como plantilla. Siéntase libre de eliminar todos los colores existentes si lo desea.
Paso 4 - migración de datos
Necesita copiar los GUIDs desde Assets/Resources/Unity-Theme Database.asset a Assets/Resources/Unity-Theme-Database.json. Para hacerlo, consulte los ejemplos a continuación. Puede ver cuál es el formato de datos de las bases de datos antiguas y nuevas, y cómo copiar los GUIDs. Puede ignorar el color por ahora, es más fácil cambiar los valores de color más tarde usando la herramienta de selector de color y la captura de pantalla de la paleta de colores antigua.
Ejemplo de Assets/Resources/Unity-Theme Database.asset - archivo antiguo (origen)
Observe el guid: 6b934efb-0b9b-42fd-82fd-7a0dbd1de53c, el archivo lo contiene 3 veces, dependiendo de su configuración. Necesitará copiar el guid al archivo Unity-Theme-Database.json.
colors:
- guid: 6b934efb-0b9b-42fd-82fd-7a0dbd1de53c
name: Primary
- guid: 520b0288-c5e4-4106-95ae-095ad2dcceb8
name: Primary Text
- guid: 465741bc-25d8-4722-a981-7e4a18074d83
name: Primary Container
themes:
- guid: 6d1fce4e-1938-4d6d-93b0-b4b9f6497293
expanded: 1
themeName: Light
colors:
- guid: 6b934efb-0b9b-42fd-82fd-7a0dbd1de53c
color: {r: 0.40392157, g: 0.3137255, b: 0.6431373, a: 1}
- guid: 520b0288-c5e4-4106-95ae-095ad2dcceb8
color: {r: 1, g: 1, b: 1, a: 1}
- guid: 465741bc-25d8-4722-a981-7e4a18074d83
color: {r: 0.91764706, g: 0.8666667, b: 1, a: 1}
- guid: 54c71f36-6023-4d84-bce7-c8192cf7ba40
expanded: 1
themeName: Dark
colors:
- guid: 6b934efb-0b9b-42fd-82fd-7a0dbd1de53c
color: {r: 0, g: 0.4784314, b: 1, a: 1}
- guid: 520b0288-c5e4-4106-95ae-095ad2dcceb8
color: {r: 1, g: 1, b: 1, a: 1}
- guid: 465741bc-25d8-4722-a981-7e4a18074d83
color: {r: 0.15294118, g: 0.15294118, b: 0.15686275, a: 1}
Ejemplo de Assets/Resources/Unity-Theme-Database.json - archivo nuevo (destino)
Este es el archivo que necesita crear al final del proceso de migración. Cuando termine, es posible que deba cerrar y abrir el proyecto Unity para permitir que Unity-Theme recargue los datos.
{
"debugLevel": 2,
"currentThemeIndex": 1,
"colors": [
{ "guid": "6b934efb-0b9b-42fd-82fd-7a0dbd1de53c", "name": "Primary" },
{ "guid": "520b0288-c5e4-4106-95ae-095ad2dcceb8", "name": "Primary Text" },
{ "guid": "465741bc-25d8-4722-a981-7e4a18074d83", "name": "Primary Container" }
],
"themes": [
{
"guid": "4cfe4185-bc3e-4247-969f-1da1d3f2bdec",
"expanded": true,
"themeName": "Light",
"colors": [
{ "guid": "6b934efb-0b9b-42fd-82fd-7a0dbd1de53c", "colorHex": "#6750A4FF" },
{ "guid": "520b0288-c5e4-4106-95ae-095ad2dcceb8", "colorHex": "#FFFFFFFF" },
{ "guid": "465741bc-25d8-4722-a981-7e4a18074d83", "colorHex": "#EADDFFFF" }
]
},
{
"guid": "dca52c83-4f79-4fee-854e-0defe9ccbe07",
"expanded": true,
"themeName": "Dark",
"colors": [
{ "guid": "6b934efb-0b9b-42fd-82fd-7a0dbd1de53c", "colorHex": "#007AFFFF" },
{ "guid": "520b0288-c5e4-4106-95ae-095ad2dcceb8", "colorHex": "#FFFFFFFF" },
{ "guid": "465741bc-25d8-4722-a981-7e4a18074d83", "colorHex": "#272728FF" }
]
}
]
}
Paso 5 - actualización del paquete
- Eliminar Unity-Theme
2.x.xdel proyecto mientras Unity está cerrado
openupm remove extensions.unity.theme
- Instalar Unity-Theme más reciente
openupm add extensions.unity.theme
Paso 6 - limpieza
- Eliminar el archivo
Assets/Resources/Unity-Theme Database.asset(original y copia). - ✅ migración completada, ¡bien hecho!