>>412733535
Well this might help:
Animator controllers control animations.
You drag an animation in, and set what happens in the scene (your avatar) during its active time in the game. Create two animations that controls a mesh or game object turning on and off; and when these animations play, the object will be now on or off respectively. To have this work in game you put the animations inside an animator controller layer; and use parameters as transition state conditions to control when these animations are played. IE; when toggle_hat = true, the condition for the transition for the animation tog_hat.anim is met. 
How this syncs up with VRC is through VRC menu and VRC parameters. Putting a parameter name into the VRC parameters list (in the avatar descriptor) allows VRC to control the animation. And it is controlled via the menu. In the menu you configure a button that 'toggles' the parameter hat_toggle to 'true'. This controls the parameter in the animator controller, setting it to 'true'. The condition to transition to the animation toggle_hat_on is now met, and that animation plays.The result is your hat is now on.