- Home /
Changing material.color does not work
I am trying to change material.color from script like this
MeshRenderer mr=myGameObject.GetComponent<MeshRenderer>();
mr.material.color=Color.clear;
but this has no effect whatsoever. Furthermore changing it manually via Inspector has no effect either! It just stays what it is. The color is actually being animated at some point, but even after animation is done I still can't change it! I tried disabling the Animator component at runtime (after the animation is done) and changing the color via Inspector - still no effect. Is this a bug or am I doing something wrong?
Thank you.
Forgot to mention this is the shader which the material is using:
Shader "SolidColor"
{
Properties {
_Color("Color", Color)=(1,0,0,1)
}
SubShader {
Tags { "RenderType"="Overlays" "Queue" = "Transparent" }
Blend SrcAlpha One$$anonymous$$inusSrcAlpha
Pass {
Fog { $$anonymous$$ode Off }
Color [_Color]
}
}
}
Answer by Paulo-Henrique025 · Aug 05, 2014 at 01:16 PM
If modifying the color in the inspector does nothing it means the shader is incomplete/broken.
I'm not a shader programmer but I think you need to redeclare the Properties inside the shader.
Like this:
fixed4 _Color;
Check the Manual, it does exactly what I am saying, declare Property and then redeclare a variable with the same name and type.
http://docs.unity3d.com/Manual/SL-VertexFragmentShaderExamples.html
Thanks for your answer. This is a fixed-function shader. It does not require redeclaration of the property in the shader body. Doing this will actually result in an error.
As a matter of fact the material behaves as expected in the editor. But once I hit Play I can't change the color any more. And I suspect it has something to do with the animation...
Your answer
Follow this Question
Related Questions
Changing material Color using RBG? 3 Answers
Having trouble with renderer.material 1 Answer
Make changes to Sprites/Default Material and not saving this change in prefabs. 1 Answer
ExecuteInEditMode doesn't work on instantiated list of objects? 1 Answer
HDRP has no Emission effect,HDRP Setting emission has no effect 0 Answers