__
Basically this, yes. Color is a value type. You are reading the value saved in that material, and save it locally. You then change your local variable, which does nothing to the mateiral.
What you intended would only work for reference types, where you save an actual reference to the same object in memory (which can then be altered from another location), instead of copying its value.
I don’t think this would even work if Color was a reference type. You need to change the color property on the Material. Changing your “color” member variable wouldn’t do that.
What would work if Color was a reference type was if you changed some field or property within the color itself. For example, something like color.r = someValue
. But again, Color is a struct.