Description

When BP functions are bound to native delegates with float parameters, we perform fixup on the BP functions such that their float parameters are converted from double precision to single precision. Otherwise, they wouldn't bind correctly to the native delegate.

However, this fixup breaks down when the function to bind lives in a different BP altogether.

Steps to Reproduce

 

  1. Create a new C++ project in 4.27.
  2. Add a new actor that has the following delegate: DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FDelegateTest, float, Test);
  3. Compile and start the editor.
  4. Create a new actor BP (any type). Add a new function that takes a single float parameter.
  5. Create another actor with the new C++ actor type. 
  6. Add a variable that an actor reference to the first type created.
  7. In the BeginPlay event, add a bind node to the aforementioned delegate. Additionally, link a create event node. For the object input, use the actor variable, and select the function that uses the single float parameter.
  8. Compile BP and verify that there are no errors.
  9. Save project and exit editor.
  10. Load project in UE5.
  11. Load the BP with the C++ actor type. Observe BP compilation error.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-145634 in the post.

1
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint
Affects Versions5.0
Target Fix5.1
Fix Commit22077246
Main Commit22087332
Release Commit22077246
CreatedMar 11, 2022
ResolvedSep 19, 2022
UpdatedOct 20, 2022