This occurs because the MakeStruct node will create a literal term for each input if nothing is connected. However, there is no explicit handling of some native 'noexport' struct types (e.g. FVector4) in FEmitHelper::LiteralTerm(), which then falls back to FEmitDefaultValueHelper::SpecialStructureConstructor() with a default struct value, but that API also does not have a special case for some 'noexport' types. In that case, LiteralTerm() currently assumes that StaticStruct() is valid for all other cases, which fails for any 'noexport' type that falls through.
UATHelper: Packaging (Windows (64-bit)): D:\dev\local\Projects\NatFunctionTest\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Private\NewBlueprint1__pf1010915279.cpp(424): error C2039: 'StaticStruct': is not a member of 'FVector4' UATHelper: Packaging (Windows (64-bit)): D:\dev\local\Projects\NatFunctionTest\Intermediate\Plugins\NativizedAssets\Windows\Game\Intermediate\Build\Win64\NatFunctionTest\Inc\NativizedAssets\NewBlueprint1__pf1010915279.generated.h(11): note: see declaration of 'FVector4' UATHelper: Packaging (Windows (64-bit)): D:\dev\local\Projects\NatFunctionTest\Intermediate\Plugins\NativizedAssets\Windows\Game\Source\NativizedAssets\Private\NewBlueprint1__pf1010915279.cpp(424): error C3861: 'StaticStruct': identifier not found
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-59565 in the post.
1 |
Component | UE - Gameplay - Blueprint |
---|---|
Affects Versions | 4.19 |
Target Fix | 4.21 |
Created | May 24, 2018 |
---|---|
Resolved | Sep 6, 2018 |
Updated | Oct 3, 2019 |