So I’ve create a class that extends USceneComponent. I create an instance of this class in my character constructor, and attach it. In this class that extends USceneComponent, I’ve created a BlueprintNativeEvent, but I don’t know how to find it in the event graph I guess?
Any ideas? Do I have to extend from actor for them to work?
We have a similar question:
I can’t seem to see the BlueprintNativeEvent, in my Blueprint, that i made from my custom component, which is derived from USceneComponent. Is there a way to Bind to that event, that is happening in custom component code, in a blueprint that contains that component?
I was able to reproduce the problem of not being able to call a BlueprintNativeEvent of a Scene Component and submitted a bug report (UE-11091). Unfortunately there does not appear to be a reasonable workaround for this issue at the moment.
Any progress on this? It’s kind of a show stopper for me at the moment.
When using the BlueprintNativeEvent tag inside a UFUNTION(), the BlueprintCallable tag needs to be used as well. BlueprintNativeEvent will give the function default code implementation that can be overridden in blueprints but the BlueprintCallable tag is needed to call the funtion to begin with.
Thanks for the tip. My issue, however, is that only events from
AActor subclasses show up in the Blueprint editor, whereas identically-defined events in
USceneComponent subclasses don’t show up at all.
On an AActor subclass, I can define an event in C++ using:
UFUNCTION(BlueprintNativeEvent, Category = "My Object")
virtual void MyEvent_Implementation();
This allows me to drop in a red event node that is triggered whenever I call
MyEvent() from C++. Doing the exact same thing in a
USceneComponent subclass doesn’t show up in the Blueprint editor.
Sorry for the misunderstanding. I have submitted a new report (UE-14057) to investigate the event node not appearing when created in a Component subclass.
Thanks , much appreciated.
Writing a function inside a custom component class and adding that component to a blueprint does not allow for the functions to be called from the blueprint. Component events only appear in blueprints of the component and not blueprints with the component attached to it. To make something bindable as an event it would have to be made as a BlueprintAssignable delegate.