UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LatentActionManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "LatentActionManager.generated.h"
8
10
12{
13 extern int32 GuaranteeEngineTickDelay; // 0: next-tick delays may run at end of current frame (default behavior pre-5.5), 1: next-tick delays will always wait until the engine frame has advanced
14}
15
16// Latent action info
17USTRUCT(BlueprintInternalUseOnly)
19{
21
22
23 UPROPERTY(meta=(NeedsLatentFixup = true))
24 int32 Linkage;
25
27 UPROPERTY()
28 int32 UUID;
29
31 UPROPERTY()
32 FName ExecutionFunction;
33
35 UPROPERTY(meta=(LatentCallbackTarget = true))
36 TObjectPtr<UObject> CallbackTarget;
37
39 : Linkage(INDEX_NONE)
40 , UUID(INDEX_NONE)
41 , ExecutionFunction(NAME_None)
42 , CallbackTarget(NULL)
43 {
44 }
45
47 : Linkage(InLinkage)
48 , UUID(InUUID)
49 , ExecutionFunction(InFunctionName)
50 , CallbackTarget(InCallbackTarget)
51 {
52 }
53};
54
63
65
66// The latent action manager handles all pending latent actions for a single world
67USTRUCT()
68struct FLatentActionManager
69{
71
72public:
74 static FOnLatentActionsChanged& OnLatentActionsChanged() { return LatentActionsChangedDelegate; }
75
84 ENGINE_API void ProcessLatentActions(UObject* InObject, float DeltaTime);
85
94 template<typename ActionType, typename PredicateType>
96 {
98 if ((ObjectActionList != nullptr) && (ObjectActionList->ActionList.Num(UUID) > 0))
99 {
100 for (auto It = ObjectActionList->ActionList.CreateKeyIterator(UUID); It; ++It)
101 {
102 ActionType* Item = (ActionType*)(It.Value());
103 if (FilterPredicate(Item))
104 {
105 return Item;
106 }
107 }
108 }
109
110 return nullptr;
111 }
112
120 template<typename ActionType>
122 {
124 {
125 FORCEINLINE bool operator()(void*) const { return true; }
126 };
127
129 }
130
139
144
146 ENGINE_API void BeginFrame();
147
150
151#if WITH_EDITOR
159 ENGINE_API void GetActiveUUIDs(UObject* InObject, TSet<int32>& UUIDList) const;
160
168 ENGINE_API FString GetDescription(UObject* InObject, int32 UUID) const;
169#endif
170
172
173protected:
176
177 struct FObjectActions
178 {
180 FActionList ActionList;
181 bool bProcessedThisFrame = false;
182 };
183
187
195 {
196 auto ObjectActionListPtr = ObjectToActionListMap.Find(InObject);
197 return ObjectActionListPtr ? ObjectActionListPtr->Get() : nullptr;
198 }
199
207 {
208 auto ObjectActionListPtr = ObjectToActionListMap.Find(InObject);
209 return ObjectActionListPtr ? ObjectActionListPtr->Get() : nullptr;
210 }
211
221
222protected:
228
231};
#define NULL
Definition oodle2base.h:134
#define FORCENOINLINE
Definition AndroidPlatform.h:142
#define FORCEINLINE
Definition AndroidPlatform.h:140
@ INDEX_NONE
Definition CoreMiscDefines.h:150
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:58
return true
Definition ExternalRpcRegistry.cpp:601
ELatentActionChangeType
Definition LatentActionManager.h:56
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition ContainerAllocationPolicies.h:1660
Definition NameTypes.h:617
Definition LatentActions.h:73
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
UE_FORCEINLINE_HINT ObjectType * Get() const
Definition SharedPointer.h:1065
Definition Object.h:95
Definition LatentActionManager.h:12
int32 GuaranteeEngineTickDelay
Definition LatentActionManager.cpp:20
Definition LatentActionManager.h:19
FORCENOINLINE FLatentActionInfo(int32 InLinkage, int32 InUUID, const TCHAR *InFunctionName, UObject *InCallbackTarget)
Definition LatentActionManager.h:46
Definition ObjectPtr.h:488
Definition Tuple.h:652
Definition WeakObjectPtrTemplates.h:415
Definition WeakObjectPtrTemplates.h:25