Another type of property that we can find in ShaderLab are “drawers”. This class allows us to generate custom properties in the Unity Inspector, thus facilitating the programming of conditionals in the shader.
By default, this type of property is not included in our shader, instead, we have to declare them according to our needs. To date, there are seven different drawers:
Each one of them has a specific function and is declared independently.
Thanks to these properties we can generate multiple states within our program, allowing the creation of dynamic effects without the need to change materials at execution time. We generally use these drawers together with two types of shader variants, these refer to #pragma multi_compile and #pragma shader_feature.