The class I want to serialize is
class FDelayAction : public FPendingLatentAction
{
public:
float TimeRemaining;
FName ExecutionFunction;
int32 OutputLink;
FWeakObjectPtr CallbackTarget;
//etc
FPendingLatentAction is
class ENGINE_API FPendingLatentAction
{
public:
//etc
As you can see, FPendingLatentAction
does not derive from UObject
, meaning that I can’t use UE4’s Cast to check if it is an FDelayAction
. But in order to serialize all the FDelayAction
s, i would need to iterate through FPendingLatentAction
s and cast them to FDelayAction
. dynamic_cast
also wont work, because UE4 is compiled without RTTI.
I thought about somehow accessing the Node from the blueprint that made the FPendingLatentAction
and seeing if that’s a Delay
, but that data only exists within the FDelayAction
.
I also considered using the GetDescription()
-method and seeing if the returned string starts with “Delay”, but GetDescription()
only exists in the editor.
If I can’t make this work, that would mean there’s no way to make Delay
s work with a SaveGame-system. I could change the engine code or turn on RTTI, but I’d much rather avoid making such changes to the engine.
Anyone see a way?