As of 4.13, when playing in the Editor, SmartLinkReached events no longer fire when a Pawn navigates using the SmartLink. The events do fire in Standalone play.
I have verified in the Engine that UNavLinkCustomComponent::OnLinkMoveStarted() is being correctly called, demonstrating that the SmartLink is being used in PIE. However, unlike 4.12, the delegate OnMoveReachedLink is unbound when pathfinding occurs. The NavLinkProxy does bind to this delegate, but the delegate state is later cleared (in PIE only).
Steps:
- Open ContentExamples → NavMesh.umap
- In the second room, modify the NavLinkProxy actor (NavLinkProxy1) to use a SmartLink, rather than the SimpleLink.
- Simulate the game, noting that the character runs off the edge of the ramp to confirm that the link is being used in the path.
- In the Level blueprint, grab a reference to NavLinkProxy1 and bind to the SmartLinkReached event
- In the event handler node, print a string or provide some other feedback that the event has fired.
Result:
In PIE, the event does not fire. In Standalone, it does.
Additional notes:
Setting a data break point on the OnMoveReachedLink delegate of NavLinkProxy’s SmartLinkComp reveals that the delegate is being Unbound as a result of UEditorEngine::CreatePIEWorldByDuplication(). The delegate is unbound during duplication and is not rebound afterward.