I have an actor, if i simply put an AddImpulse
on his SkeletalMesh after BeginPlay
, it works on instances that are manually placed in the level, but not always on ones that I spawn at runtime. (sometimes it works, sometimes nothing happens)
If I add a delay, even one of 0 seconds, between BeginPlay
and the AddImpulse
, it works reliably.
If I first do the AddImpulse
, then a delay, and then another AddImpulse
with an Impulse of 0,0,0, the Impulse of the first AddImpulse
gets applies. If the delay is more than 0, the Impulse waits before actually taking effect. But this means it must be “stored” somehow.
So this makes the Actor fly upwards after one second (or sometimes instantly):
If I use SetLinearVelocity
after BeginPlay
, it works fine, no delay needed.
This might be related to this issue: AddImpulse gets Queued up and executed with next AddImpulse - World Creation - Unreal Engine Forums