Here’s my dream solution:
- I make a script that contains a list of Color variables, exposing them to the inspector
- Any other script can access those colors, to keep a consistent, easy to change color palette throughout the game
- Whenever I set a color in the inspector, I can choose a color from the palette instead of an “actual” color, which will also update when I update the palette
Is there a way to achieve this? If not, what’s the closest I can get?
There are two parts to this that I found so far:
- Defining the colors and being able to set them in the inspector. It doesn’t seem to be possible to @export global variables. My first thought was to use a class_name with static variables, but those cannot be @exported. No variation I tried worked (@export static const, etc.) I could use an autoload script but I don’t think its variables can be @exported either?
- Accessing the colors in the inspector. I learned that the color picker actually has its own color palette system. But it’s rather underdocumented, or I haven’t been able to find good documentation for it. Is it possible to access those colors from code, and do they automatically update throughout the game if you change a color?