Control over actor ticking can be vital for performance in Unreal - but there is no level of control in Blueprint. There also seems to be a default implementation that causes actor subclasses to lose their ability to tick when Blueprinted.
I’d like to request the ability to determine whether an actor will tick from it’s blueprint default properties, and a function to enable and disable ticking as required from gameplay. This way you won’t need two c++ subclasses of the same actor just to enable / disable the bCanEverTick bool depending on your needs, or to need handle it and expose it manually yourself via C++.
If you have an actor subclass, adding an Event Tick should set the bCanEverTick flag to true by default. This appears to be deliberately disabled in the kismet compiler, throwing the “Blueprint X has the ReceiveTick Y event, but it can never tick” error.
Thank you for your feedback, I have gone ahead and sent out the feature requests you have asked for. Please let us know if you have any other comments or concerns that we can address.
I am having this problem is there a work around until then?
Hey I ran into the same issue today, did pretty much did as you said. If I didn’t want a tick I generated the BP from StaticMeshActor which seems to have it disabled by default.
With the static meshes I wanted to tick I generated the blueprint from Actor and added them as StaticMeshComponents.
If you are using your own Class that inherits from Actor you should be able to write a function that toggles/sets bCanEverTick that is blueprint accessible.
I’m having the exact same problem. Is this possible at all? I have a GameCamera, which is inherited from an Actor. How do I get it ticking in BP?
This is post is here for archival purposes only from a beta build of UE4. Please resubmit your question as a new post on the answer hub. Thank you.
This is a question from the beta version of the engine. We are marking this answered for tracking purposes. If you are experiencing an issue similar to this please post a new question.