I have a delegate that I’m using to catch a material being edited in the editor:
DelegateHandles.Add( FCoreUObjectDelegates::OnObjectPropertyChanged.AddRaw( this, &FMyPluginModule::OtherComponentPropertyChanged ) );
This works, I can trap the event. This is what the event provides:
UObject *ObjectBeingModified, FPropertyChangedEvent &PropertyChangedEvent
In this case ObjectBeingModified is a UObject whose name is "DEditorVectorParameterValuebut I can’t figure out from this which UMaterialInstance is being edited. Tracing up the Owner chain almost immediately gives me LevelEd, no useful objects along the way. Same deal for the UProperty in PropertyChangedEvent - there’s little info to go on in the data structure.
Fun bonus! Here’s the watchlist for this event: