Semantic Color Palette

一个用于Unity的语义颜色管理系统:以有意义的调色板组织您的颜色,并将其分配给各种“可着色”组件。再也不需要在多个地方更新颜色值了!
这个包为Unity提供了一个语义颜色管理系统 。
体验该系统的最佳方式是尝试在线演示,但视频也同样有效!
那么,什么是语义颜色管理?
基本上,您为颜色定义一组有意义的标识符,表示颜色的使用位置/方式(例如“buttonBackground”),而不是颜色本身(例如“darkBrown”)。
然后,在其他地方,您映射每个标识符到一个实际的颜色值。
颜色应用的元素从不直接引用实际的特定颜色,而是仅引用语义颜色标识符。
这种解耦允许以集中的方式快速且无缝地更改多个元素的颜色,并通过应用不同的标识符 -> 颜色映射轻松实现某种形式的“颜色皮肤化”。
这个系统在实践中是如何工作的?
有三个核心元素共同协作以实现其设计目标:
- 调色板:一组命名的id -> 颜色映射。它是一个“数据”元素,通常是持久的。
- 调色板提供者:一个活��的元素,存在于Unity场景中,充当调色板和着色器之间的中介,将颜色更新推送给任何相关的着色器。
- 着色器:一个活跃的元素,包含将一种或多种颜色应用于场景组件(UI元素、3D模型材质等)的逻辑。着色器必须与调色板提供者连接,从中检索其配置中指定的颜色标识符的颜色。
提供了可用于Unity组件的现成着色器,使用颜色属性(UI元素、材质等)。也就是说,程序员可以轻松地扩展系统,添加自定义的着色器(和提供者)。
您可以通过一种新的、更合理的方式在Unity中设置颜色来改善您的工作流程,实现低摩擦且对项目组织没有妥协。
如果您愿意,可以通过检查器完成任何操作,但如果您更喜欢,也可以仅通过代码使用该系统。
调色板可以从常用的第三方格式导入并在检查器中编辑,在更高级的场景中,可以在运行时从外部文件加载。
资产内容的布局便于打包,以便在包管理器中使用,如果您希望从多个项目轻松导入(可能包括您自己的自定义)的话。