quote="Pharan" If you are using Spine/Skeleton, it doesn't have a _Color property so this would have no effect.
(2) If you access MeshRenderer.material, it will create a COPY of the shared (asset) material and assign it to itself. But MeshRenderer materials are under the control of SkeletonRenderer.
You can read more about that and the solution here: Spine-Unity Runtime Documentation
Basically, instead of saying
material.SetColor("_Color", Color.red);
You should use MaterialPropertyBlock. This is ideal for other situations too.
MaterialPropertyBlock mpb = new MaterialPropertyBlock(); // cache this in an instance field instead of a local to avoid alloc.
mpb.SetColor("_FillColor", Color.red); // "_FillColor" is a named property on a hypothetical shader.
GetComponent<MeshRenderer>().SetPropertyBlock(mpb);
[/quote]
I had rewrited the Spine/Skeleton so it had a '_Color'.
Thanks a lot ! Pharan .
I fix it by use MaterialPropertyBlock , It is the best way! 😃