So this piece of code is for a custom desaturation shader you can use in Unity to desaturate (greyscale) any texture by changing the shader, which you can do either manually of via code.
Shader "Custom/Desaturate" {
Properties {
_MainTex ("Texture", 2D) = ""
}
SubShader {
Blend SrcAlpha OneMinusSrcAlpha
Pass {
Color(.389, .1465, .4645, 0.5)
SetTexture[_MainTex] {Combine one - texture * primary alpha, texture alpha}
SetTexture[_] {Combine previous Dot3 primary}
}
}
}
Just right click on your project view and create a new Shader and put this code in there. Save it with any name you’d like. The share will now appear under the “Custom” list when selecting a shader for your material. To assing it via code, you would do this:
referenceToMyObject.renderer.material.shader = Shader.Find("Custom/Desaturate");
Very simple!
Moving notice:
Minor edits to post.
