Can’t tell you how this behaves with no UFUNCTION macro since it might not be able to reflect without one. Normally you declare your functions as UFUNCTION in the IMyInterface.
I believe that the only time you use
Implements<UGrabInteractionInterface>()
is when you need to test a blueprint implementation, but I might be wrong. If a method is not UFUNCTION it can’t be implemented by a blueprint.
It is not for blueprint… that’s why I don’t use UFUCTION…
But it wouldn’t let me derive from a pure class in C++… it had to be derived from UObject… However, being derived from UObject also has very useful benefits… so it’s fine… but I don’t need UFUCTIONS…