I want to animate a mesh which has 4 materials, all of them are using the same shader. now, I want to animate the "emission" property of material[0] and material[2], but not material[1] and material[3].

But on the animation window, I can only find one "emission" property,

1,I guess, this "emission" controls all 4 materials?

2,I also found "Material Reference[x]" property(x = 0,1,2,3), but, adding one of those property doesn't give me "sub property of emission"

So, what should I do? thanks I use Unity 2019.4.28.


I don't know how to control each emission property in a separate manner, as I also found out that there's only one set of emission property and they affect all correspondent materials (materials of the same shader) at the same time.

I did manage to figure out that the 'Mesh Renderer. Material reference[x]' found in the animation property can be used to redirect different materials to its material slot. This is as in: If I had 2 or more materials, I can drag and drop them into the animation dopesheet to tell the mesh renderer which one to use. Also by doing this, no new materials will be instantiated even if a shared user already exists, unlike doing so by script.

  • \$\begingroup\$ ?? what? I am the OP and I want to mark this post as "Accepted", but upvoting it (click the up triangle) gives me "Thanks for the feedback! You need at least 15 reputation to cast a vote, but your feedback has been recorded." \$\endgroup\$ Sep 9 at 3:51
  • \$\begingroup\$ @XinggangLi accepting and voting are two different things. You can accept an answer to your own question with the checkmark icon next to it. When you have the reputation, you can also upvote or even downvote the accepted answer if you like, but that's independent from accepting it. \$\endgroup\$
    – Philipp
    Sep 9 at 7:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.