Description

This issue seems to stem from the incorrect constructor being called for TScriptInterface, so the correct Interface pointer does not get called.

 

If you explicitly connect a reference to "Self" to the Task Owner input pin, than the code behaves as expected. 

Steps to Reproduce
  1. Create a blueprint with AIController as the native base class.
  2. Open the event graph for that new BP.
  3. Add a "Task Wait Delay" node (the Gameplay Task wait-delay, not the AbilityTask wait-delay) and connect its exec input to the BeginPlay event.
  4. Set the Time on the delay node to 1.0 (important because the delay node doesn't work with 0 delay).
  5. Leave the TaskOwner field disconnected; it's set to DefaultToSelf so that should be fine.
  6. Add a "Print String" node and connect it to the "OnFinish" pin on the delay node.
  7. Set the message and duration on the Print String node to something you'll see.
  8. Next create a new Character BP.
  9. Set the "AI Controller Class" to the class you created above.
  10. Add a mesh to the mesh component.
  11. Drop an instance of this character in a level and run the level.

Result: Notice that you do not see printed string. You can set breakpoints in the AI Controller BP to see that the delay does indeed execute but never finishes.

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-97884 in the post.

1
Login to Vote

Unresolved
ComponentGameplay - Blueprint
Affects Versions4.24.24.255.0-m3
CreatedAug 31, 2020
UpdatedSep 3, 2020