I want to change some field of a MonoBehavior when I save it. For example I have a UnityEngine.UI.Text. I want to add I18N support. That mean I can switch my language and change both the text and font of the Text. But when I save the GameObject, It need change to text and font field to null. This make sure the UI will not dependent on any specify language. A MonoBehavior can saved in different ways. It usually saved into a prefab, but into a scene is also a reasonable way. Even more I can create a GameObject as a sub-asset of other assets. And after I save it, I need revert and set the font and text field correctly, in order to preview. I investigate some API like PrefabUtility.prefabInstanceUpdated, AssetPostProcessor, AssetModificationProcessor, ISerializeableCallback. All of them seems not suitable for this. Is there any suggestion?