UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InputBehaviorSet.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
7#include "CoreMinimal.h"
8#include "InputBehavior.h"
9#include "InputState.h"
10#include "Templates/Function.h"
11#include "UObject/Interface.h"
12#include "UObject/Object.h"
14#include "UObject/ObjectPtr.h"
16
17#include "InputBehaviorSet.generated.h"
18
19
20
24USTRUCT()
26{
28
29
30 UPROPERTY()
31 TObjectPtr<UInputBehavior> Behavior = nullptr;
32
34 void* Source = nullptr;
35
37 FString Group;
38
39 friend bool operator<(const FBehaviorInfo& l, const FBehaviorInfo& r)
40 {
41 return l.Behavior->GetPriority() < r.Behavior->GetPriority();
42 }
43};
44
45
46
47
57UCLASS(Transient, MinimalAPI)
59{
61
62public:
65
66 //
67 // Set Management
68 //
69
70
72 INTERACTIVETOOLSFRAMEWORK_API virtual bool IsEmpty() const;
73
80 INTERACTIVETOOLSFRAMEWORK_API virtual void Add(UInputBehavior* Behavior, void* Source = nullptr, const FString& GroupName = "");
81
88 INTERACTIVETOOLSFRAMEWORK_API virtual void Add(const UInputBehaviorSet* OtherSet, void* NewSource = nullptr, const FString& NewGroupName = "");
89
101 INTERACTIVETOOLSFRAMEWORK_API virtual bool RemoveByGroup(const FString& GroupName);
107 INTERACTIVETOOLSFRAMEWORK_API virtual bool RemoveBySource(void* Source);
112
113
114 //
115 // Queries and Event Forwarding
116 //
117
118
125
132
136 INTERACTIVETOOLSFRAMEWORK_API virtual void CollectWantsForceEndCapture(TArray<UInputBehavior*>& ResultOut);
137
138
139protected:
140
142 UPROPERTY()
144
148 INTERACTIVETOOLSFRAMEWORK_API virtual void BehaviorsModified();
149
150
152 bool SupportsInputType(UInputBehavior* Behavior, const FInputDeviceState& InputState)
153 {
154 return (Behavior->GetSupportedDevices() & InputState.InputDevice) != EInputDevices::None;
155 }
156
157};
158
159
160
161
162
163// UInterface for IInputBehavior
164UINTERFACE(MinimalAPI)
169
170
177{
179
180public:
184 virtual const UInputBehaviorSet* GetInputBehaviors() const = 0;
185};
186
187
193UCLASS(Transient, MinimalAPI)
195{
197
198public:
199
200 TUniqueFunction<const UInputBehaviorSet* ()> GetInputBehaviorsFunc = []() { return nullptr; };
201
202 // IInputBehaviorSource
203 virtual const UInputBehaviorSet* GetInputBehaviors() const override { return GetInputBehaviorsFunc(); };
204};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void RemoveAll(const TUniqueFunction< bool(const FDependsNode *)> &ShouldRemove, TArray< FDependsNode * > &Dependencies, TBitArray<> *FlagBits, bool IsSorted, EAllowShrinking ShrinkPolicy)
Definition DependsNode.cpp:614
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UINTERFACE(...)
Definition ObjectMacros.h:780
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
Definition InputBehaviorSet.h:177
virtual const UInputBehaviorSet * GetInputBehaviors() const =0
Definition Array.h:670
Definition FunctionFwd.h:19
Definition InputBehaviorSet.h:59
Definition InputBehaviorSet.h:166
Definition InputBehavior.h:249
virtual INTERACTIVETOOLSFRAMEWORK_API EInputDevices GetSupportedDevices()
Definition InputBehavior.cpp:38
virtual INTERACTIVETOOLSFRAMEWORK_API FInputCapturePriority GetPriority()
Definition InputBehavior.cpp:28
Definition Interface.h:19
Definition InputBehaviorSet.h:195
virtual const UInputBehaviorSet * GetInputBehaviors() const override
Definition InputBehaviorSet.h:203
Definition Object.h:95
Definition InputBehaviorSet.h:26
Definition InputState.h:264
Definition ObjectPtr.h:488