TMPro Font material instance being created

Hi, I have a TMPro material whose properties I alter based on selected language. However during some point in runtime, some of the TMPro components get an instance of the material instead (as shown in attached images) so the properties which I change in my referenced material won’t be reflected on those particular TMPro gameobjects. Any Idea why material instance creation is happening and how to prevent them?


I seem to get these errors when the instance is created:

Shader error in ‘TextMeshPro/Distance Field’: failed to open source file: ‘TMPro_Properties.cginc’ at line 127 (on metal)
Shader error in ‘TextMeshPro/Distance Field’: failed to open source file: ‘TMPro.cginc’ at line 128 (on metal)

This is standard behavior in Unity where accessing the .material property vs. the sharedMaterial property will return an instance of the material.

So respecting this established convention in Unity, accessing the .fontMaterial will return an instance of the material whereas accessing the .fontSharedMaterial will return shared material.

Thank you. TIL just accessing the getter alone would return the instance