When overriding a BlueprintNativeFunction in a child class, if the inheritance is multiple levels deep, the override does not work correctly. As shown in the reproduction steps, this the example to show this:
Parent is a class with a function called "TestFunc", it returns a boolean and is unimplemented. Child is a blueprint based off of Parent which overrides TestFunc and adds a Print String to it. Grandchild is a blueprint based off of Child and also overrides TestFunc by adding a print string. The test setup is that an instance of Grandchild is placed in the level and TestFunc is called in the level blueprint.
If everything is done in this order, it works correctly. If Child's override is created after Grandchild's override however, Child's override is used when calling TestFunc on Grandchild.
Note: This does not occur with functions that return Void due to the difference in how they are overridden.
Regression?: No
While this was not the same functionality in 4.14, the function wasn't called at all in 4.14 so the behavior has at least improved since.
Head over to the existing Questions & Answers thread and let us know what's up.
1 |
Component | UE - Gameplay - Blueprint |
---|---|
Affects Versions | 4.14, 4.15, 4.16 |
Created | Mar 9, 2017 |
---|---|
Resolved | Aug 18, 2021 |
Updated | Aug 18, 2021 |