If you're deriving from a UISprite, just overwrite the OnFill function instead.
I do so, but overwriting fill functions would be better in architectural way. For example I could overwrite fill functions only for sprite type I really need. For now I use
base.OnFill in this case but I don't like it. So not that it's the thing I can't live without, but it would be appreciated
OnUpdateUVs was removed because the logic happens in UpdateUVs function which handles "if this is a sliced sprite do this" kind of stuff.
Yes it does but UpdateUVs isn't virtual as OnUpdateUVs was, so I can't overwrite it for my sprites without copying your code. Even if it would be virtual, I would have to copying
"was UV really changed" condition which would be not a big problem but still less handy then overwriting special function for this case.
To be honest, I can't see much difference between how OnFill and (On)UpdateUVs should be used by derived classes. In both cases user wants to directly overwrite what will happen to his sprite without copying UISprite's code. From this point of view (IMHO) sprites before 2.5 were more flexible.