The Unity documentation (specifically here: https://docs.unity3d.com/Manual/SL-PropertiesInPrograms.html ) says:
Cg / HLSL can also accept the uniform keyword, but it is not necessary:
uniform float4 _MyColor;
That is, you can write the keyword uniform , but it is not necessary.
Somewhere in books / websites / forums it is written that if you plan to receive data into a variable from a script (from an external source), then you need to declare the variable in this way (the keyword attribute does not count now).
However, even without this keyword, I quietly changed the value from the script, for example, the code:
GetComponent<Renderer>().material.SetFloat("_Contrast", contrast); quietly changed the variable and without any uniform .
After all, if the stars are lit, then it is necessary for someone? If it is, then for some reason it is needed? Or is it still not necessary and simply developed cannot physically remove it and can we now be hammered on it forever? I do not understand.