Publisher | Binary Charm |
---|---|
File size | 8.65MB |
Number of files | 415 |
Latest version | 1.1.2 |
Latest release date | 2024-11-05 11:14:12 |
First release date | 2022-10-09 11:07:13 |
Supported Unity versions | 2018.4.2 or higher |
This package provides a semantic color management system for Unity.
The best way to get a glimpse of the system in action is trying the online demo, but the videos work too!
So, what is semantic color management?
Basically, you define a set of meaningful identifiers for colors, representing where/how each color is used (e.g. "buttonBackground"), and not the colors themselves (e.g. "darkBrown").
Then, elsewhere, you map each idenfier to an actual color value.
The elements where colors are to be applied never directly refer to actual, specific colors, but only to semantic color ids.
This decoupling allows to quickly and flawlessly change colors to multiple elements in a centralized way, and to easily implement some form of "color skinning" by applying different id -> color mappings.
How does this system work in practice?
There are three core elements that work together to achieve its design goals:
- Palette: a named set of id -> color mappings. It is a "data" element, usually persistent.
- Palette provider: an active element, living in a Unity scene, that acts as a broker between palettes and colorers, pushing color updates to any relevant colorers.
- Colorer: an active element that contains the logic to apply one or more colors to a scene component (UI elements, 3D models materials and more). A colorer must be connected to a palette provider, from which it retrieves colors for the color identifiers specified in its configuration.
Ready to use Colorers for Unity components using color properties (UI elements, Materials etc) are included. That said, programmers can easily extend the system with additional custom colorers (and providers).
You can improve your workflow with a new, more reasonable way to setup colors in Unity, with low friction and no compromises on your project organization.
Anything can be done through the inspector if you want, but it's also easy to use the system through code only if you prefer.
Palettes can be imported from commonly used third party formats and edited in the inspector, and in more advanced scenarios can be loaded at runtime from external files.
The asset contents are laid out to be easily packaged for use in the Package Manager, if you want to easily import it (maybe including your own customizations) from multiple projects.