Description

When SMyBlueprint::OnMoveToParent() gets called the callsites of the function are never updated in dependent blueprints.

This results in any UK2Node_CallFunction's not having their `FunctionReference` member updated, which leaves a dependency on any blueprint to the old child class, when it should be the parent. This also means that the "Target is ..." text is incorrect on any calling nodes. 

Steps to Reproduce
  1. Create a blueprint called Base (derived from Actor), a blueprint called Child derived from Base, and a third blueprint Other (derived from Actor).
  2. Add a function TestFunc to Child and compile.
  3. Add a variable of type Child to Other, drag off it in the event graph and add a call to TestFunc connected to BeginPlay, compile. Note the Target is Child on the node.
  4. Now go to Child, right click TestFunc and select Move to Parent Class. Recompile all. Note in Other, the node now says Target is Base, as expected.
  5. Change the type of the reference variable inside Other to Base, recompile, and save all. Then right click on Child in the content browser and open Reference Viewer. Note that Other is still referencing Child, despite no longer having any dependency on it.

Have Comments or More Details?

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

2
Login to Vote

Backlogged
CreatedMar 19, 2021
UpdatedJan 31, 2022