Sometimes manual recompile is required to make a blueprint actually recompile data-only changes, but not always. If the last manual compile was with default values, then changes are not updated. If the last manual compile was with non-default values, then changes are auto-compiled as expected.
Updated repro steps 2016.08.10
Step #25 is the auto-recompile case that fails. Step #37 is the auto-recompile case that succeeds (AFAICT since it had already been compiled at a non-default value)
1 Started with Unreal 4.12.5 (does include my change from https://udn.unrealengine.com/questions/302880/diff-mistakenly-shows-changes-when-sub-categories.html, shouldn't matter)
2 Opened Actor.h, changed "InitialLifeSpan" to be Read/Write(not sure if necessary) and have a default value of 10.0
3 Built and and launched "Debug Editor"
4 Created a New Project - "First Person - Desktop/Console - Maximum Quality - With Starter Content"
5 Clicked "Blueprints" folder
6 Created a new blueprint ("Blueprints">"Blueprint Class">"Static Mesh Actor"), named it "Recompiler Blueprint"
7 Edited that blueprint.
8 Under "Static Mesh Component", set static mesh to "1M_Cube"
9 Compiled & Saved blueprint.
10 Edited level blueprint
11 Placed Node: Event Begin Play
12 Connected output of node to new node "Spawn Actor From Class"
13 Set the class to "Recompiler Blueprint"
14 Created a "Make Transform" node and connected it to the "Spawn Actor" node
15 Set coordinates to 460/-46/400
16 Compiled Level Blueprint
17 Went into PIE
18 Observed my dark gray cube floating in the air in front
19 Exited PIE
20 Edited the "Recompiler Blueprint" again
21 Changed lifespan to "1.0"
22 Did NOT compile/save
23 Went into PIE
24 Observed my dark gray cube floating in the air in front.
25 Observed cube did NOT disappear after 1 second
26 Exited PIE
27 Manually compiled the "Recompiler Blueprint" again
28 Went into PIE
29 Observed my dark gray cube floating in the air in front.
30 Observed cube successfully disappear after 1 second
31 Exited PIE
32 Edited the "Recompiler Blueprint" again
33 Changed lifespan to "8.0"
34 Did NOT compile/save
35 Went into PIE
36 Observed my dark gray cube floating in the air in front.
37 Observed cube successfully disappeared after 8 seconds (shortly before entire level vanishes due to all of them having 10.0 lifespan)
38 Exited PIE
This is the relevant part of the callstack that should change the value, but doesn't in the case described:
FObjectInitializer::InitPropertiesFromCustomList
FObjectInitializer::InitProperties
FObjectInitializer::PostConstructInit()
FObjectInitializer::~FObjectInitializer()
StaticConstructObject_Internal
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-34238 in the post.
0 |
Component | UE - Gameplay - Blueprint |
---|---|
Affects Versions | 4.12 |
Created | Aug 4, 2016 |
---|---|
Resolved | Feb 21, 2018 |
Updated | Feb 21, 2018 |