I’m using 4.5preview from Launcher, but this issue was present in 4.4 Launcher version too.
Create a new UMG Blueprint widget based on UserWidget (default). go to graph editor of the widget and expand Mouse category in the functions and variables list. Look at the overridable functions, Mouse category and notice that OnMouseEnter, OnMouseLeave, and other methods with void return type are not present, hence can’t be implemented.
But they are present in the source code
UFUNCTION(BlueprintNativeEvent, Category="Mouse") void OnMouseEnter(FGeometry MyGeometry, const FPointerEvent& MouseEvent); UFUNCTION(BlueprintNativeEvent, Category="Mouse") void OnMouseLeave(const FPointerEvent& MouseEvent);
This is also easy to replicate with own UFUNCTIONS. Add a c++ class to the project, extend from UserWidget (although anything can work here since this is not only related to UMG), add a UFUNCTION
UFUNCTION(BlueprintNativeEvent, Category = "TestCat") void SomeTestFunction(const bool TestVar) ;
add an implementation, compile, go to the blueprint notice the function is not there.
change return type to something other than void
UFUNCTION(BlueprintNativeEvent, Category = "TestCat") bool SomeTestFunction(const bool TestVar) ;
fix implementation, compile, reload project (hot reload doesn’t seem to refresh the functions list in the blueprint so a full reload of the editor is needed) and notice the function now appears.
Edit: Sorry about the formatting, not sure why it puts everything on the same line in the code block.