update: including UniversalRP (URP) workaround at bottom!
Having this problem?
Looking for a way to make only the UI matches to what is designed in Photoshop? Don’t want artists to change any workflow because you are in the middle of development? Try this.
The approach is to do the gamma <-> linear conversion in an image effect shader. We let the UI contents to blend in Linear, and then convert the result back to Gamma again.
To solve it in Builtin Render Pipeline:
The project contains the shader and scripts.
Then mind these settings when you apply the tool to your project:
To solve it in Universal Render Pipeline (7.2.0+), in Unity 2019.3 version:
The project contain GammaUIFix assets. These are what you need to include into your own project. And then apply following settings in your own project:
Drawback – There is no free lunch:
There might be small performance impact as this is a Graphics blit of full screen image effect.