此包为Unity提供了一个语义颜色管理系统。

那么,什么是语义色彩管理?

基本上,您为颜色定义了一组有意义的标识符,表示每种颜色的使用位置/方式(例如“buttonBackground”),而不是颜色本身(例如“darkBrown”)。

然后,在其他地方,将每个标识符映射到实际的颜色值。

要应用颜色的元素从不直接引用实际的特定颜色,而仅引用语义颜色id。

这种解耦允许以集中的方式快速、完美地更改多个元素的颜色,并通过应用不同的id->颜色映射轻松实现某种形式的“颜色蒙皮”。

这个系统在实践中是如何运作的?

有三个核心要素共同作用以实现其设计目标:

Palette:一组命名的id->颜色映射。它是一个“数据”元素,通常是持久的。
调色板提供者:一个活跃的元素,生活在Unity场景中,充当调色板和着色器之间的中介,将颜色更新推送到任何相关的着色器。
Colorer:一个活动元素,包含将一种或多种颜色应用于场景组件(UI元素、3D模型材质等)的逻辑。配色程序必须连接到调色板提供程序,从中检索其配置中指定的颜色标识符的颜色。
包括使用颜色属性(UI元素、材质等)的Unity组件的即用型Colorers。也就是说,程序员可以使用额外的自定义着色器(和提供者)轻松地扩展系统。

您可以通过一种新的、更合理的方式在Unity中设置颜色,以低摩擦和不影响项目组织的方式来改进您的工作流程。

如果你愿意,任何事情都可以通过检查器完成,但只有在你愿意的情况下,通过代码使用系统也很容易。

选项板可以从常用的第三方格式导入并在检查器中编辑,在更高级的场景中,可以在运行时从外部文件加载。

如果您想从多个项目轻松导入资产内容(可能包括您自己的自定义项),则资产内容的布局可以轻松打包,以便在Package Manager中使用。