Modify and animate UI materials without creating a new material asset.
Works with animation, serialization, nested prefabs, source control and material variantsCompatible with Unity 2021 and 2022Material variant support only with Unity 2022This package exists to fill the lack of MaterialPropertyBlock in the UI systemIt allows users to animate material properties, as you would with a MeshRenderer or a SpriteRenderer, in a clean and concise interface.Setup is a breeze:Select your UI element (an Image for example)Add the GraphicMaterialOverride componentSelect a property to modify from the dropdown menuA child GameObject is created, with a GraphicPropertyOverride componentAnimate or modify this property as you wishTo remove the override, simply delete the child GameObject holding the overrideThe reason a child GameObject is required is because Unity cannot animate arrays or duplicate componentsAnimating UI material has until now required custom scripts for each material. Furthermore, instanced material pollute the editor by creating false prefab modifications.With this package, it is possible to customize or animate a material for a any UI component independently, without creating new material or scripts, and without modifying material assets.* Works with float values and ranges, integers, textures and vectors* Editor script for efficient workflow* No runtime collection allocations* Compatible with the SRP batcher* All code available, with comments* Free foreverLimitations:* Only works with the SRP* Displays toggles as float* Does not show custom material editor* Only works for UI components* Parent material modifications require calling SetMaterialDirty to be updated