UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InputComponent.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "InputCoreTypes.h"
10#include "InputComponent.generated.h"
11
12class UPlayerInput;
13
15template<class DelegateType, class DynamicDelegateType>
17{
19 TInputUnifiedDelegate(DelegateType D) : FuncDelegate(MakeShared<DelegateType>(MoveTemp(D))) {};
21
23 inline bool IsBound() const
24 {
25 return ((FuncDelegate.IsValid() && FuncDelegate->IsBound()) || (FuncDynDelegate.IsValid() && FuncDynDelegate->IsBound()));
26 }
27
29 inline bool IsBoundToObject(void const* Object) const
30 {
32 {
33 if (FuncDelegate->IsBound())
34 {
35 return FuncDelegate->IsBoundToObject(Object);
36 }
37 }
38 else if (FuncDynDelegate.IsValid())
39 {
40 if (FuncDynDelegate->IsBound())
41 {
42 return FuncDynDelegate->IsBoundToObject(Object);
43 }
44 }
45
46 return false;
47 }
48
50 template< class UserClass >
51 inline void BindDelegate(UserClass* Object, typename DelegateType::template TMethodPtr< UserClass > Func)
52 {
54 FuncDelegate = MakeShared<DelegateType>(DelegateType::CreateUObject(Object, Func));
55 }
56
58 inline void BindDelegate(UObject* Object, const FName FuncName)
59 {
62 FuncDynDelegate->BindUFunction(Object, FuncName);
63 }
64
72
74 inline void Unbind()
75 {
78 }
79
81 inline const DelegateType& GetDelegate() const
82 {
84 }
85
91
92protected:
97
98 static const DelegateType UnboundDelegate;
100};
101
102template<class DelegateType, class DynamicDelegateType>
104
105template<class DelegateType, class DynamicDelegateType>
107
108
123
128
130{
131 FInputActionUnifiedDelegate() : BoundDelegateType(EBoundDelegate::Unbound) {};
132 FInputActionUnifiedDelegate(FInputActionHandlerSignature D) : FuncDelegate(MakeShared<FInputActionHandlerSignature>(MoveTemp(D))), BoundDelegateType(EBoundDelegate::Delegate) {};
133 FInputActionUnifiedDelegate(FInputActionHandlerWithKeySignature D) : FuncDelegateWithKey(MakeShared<FInputActionHandlerWithKeySignature>(MoveTemp(D))), BoundDelegateType(EBoundDelegate::DelegateWithKey) {};
134 FInputActionUnifiedDelegate(FInputActionHandlerDynamicSignature D) : FuncDynDelegate(MakeShared<FInputActionHandlerDynamicSignature>(MoveTemp(D))), BoundDelegateType(EBoundDelegate::DynamicDelegate) {};
135
137 inline bool IsBound() const
138 {
139 switch (BoundDelegateType)
140 {
141 case EBoundDelegate::Delegate:
142 return FuncDelegate->IsBound();
143
144 case EBoundDelegate::DelegateWithKey:
145 return FuncDelegateWithKey->IsBound();
146
147 case EBoundDelegate::DynamicDelegate:
148 return FuncDynDelegate->IsBound();
149 }
150
151 return false;
152 }
153
156 {
157 switch (BoundDelegateType)
158 {
159 case EBoundDelegate::Delegate:
160 return (FuncDelegate->IsBound() && FuncDelegate->IsBoundToObject(Object));
161
162 case EBoundDelegate::DelegateWithKey:
163 return (FuncDelegateWithKey->IsBound() && FuncDelegateWithKey->IsBoundToObject(Object));
164
165 case EBoundDelegate::DynamicDelegate:
166 return (FuncDynDelegate->IsBound() && FuncDynDelegate->IsBoundToObject(Object));
167 }
168
169 return false;
170 }
171
173 inline const UObject* GetUObject() const
174 {
175 switch (BoundDelegateType)
176 {
177 case EBoundDelegate::Delegate:
178 return FuncDelegate->GetUObject();
179
180 case EBoundDelegate::DelegateWithKey:
181 return FuncDelegateWithKey->GetUObject();
182
183 case EBoundDelegate::DynamicDelegate:
184 return FuncDynDelegate->GetUObject();
185 }
186
187 return nullptr;
188 }
189
191 inline const void* GetObject() const
192 {
193 switch (BoundDelegateType)
194 {
195 case EBoundDelegate::Delegate:
196 return FuncDelegate->GetObjectForTimerManager();
197
198 case EBoundDelegate::DelegateWithKey:
199 return FuncDelegateWithKey->GetObjectForTimerManager();
200
201 case EBoundDelegate::DynamicDelegate:
202 return FuncDynDelegate->GetUObject();
203 }
204
205 return nullptr;
206 }
207
209 template< class UserClass >
210 inline void BindDelegate(UserClass* Object, typename FInputActionHandlerSignature::template TMethodPtr< UserClass > Func)
211 {
212 Unbind();
213 BoundDelegateType = EBoundDelegate::Delegate;
214 FuncDelegate = MakeShared<FInputActionHandlerSignature>(FInputActionHandlerSignature::CreateUObject(Object, Func));
215 }
216
217 template< class UserClass >
218 inline void BindDelegate(UserClass* Object, typename FInputActionHandlerWithKeySignature::template TMethodPtr< UserClass > Func)
219 {
220 Unbind();
221 BoundDelegateType = EBoundDelegate::DelegateWithKey;
222 FuncDelegateWithKey = MakeShared<FInputActionHandlerWithKeySignature>(FInputActionHandlerWithKeySignature::CreateUObject(Object, Func));
223 }
224
225 template< class DelegateType, class UserClass, typename... VarTypes >
226 inline void BindDelegate(UserClass* Object, typename DelegateType::template TMethodPtr< UserClass > Func, VarTypes... Vars)
227 {
228 Unbind();
229 BoundDelegateType = EBoundDelegate::Delegate;
230 FuncDelegate = MakeShared<FInputActionHandlerSignature>(FInputActionHandlerSignature::CreateUObject(Object, Func, Vars...));
231 }
232
234 inline void BindDelegate(UObject* Object, const FName FuncName)
235 {
236 Unbind();
237 BoundDelegateType = EBoundDelegate::DynamicDelegate;
239 FuncDynDelegate->BindUFunction(Object, FuncName);
240 }
241
244 {
245 Unbind();
246 BoundDelegateType = EBoundDelegate::Delegate;
248 return *FuncDelegate;
249 }
250
253 {
254 Unbind();
255 BoundDelegateType = EBoundDelegate::DelegateWithKey;
257 return *FuncDelegateWithKey;
258 }
259
261 inline void Unbind()
262 {
263 switch(BoundDelegateType)
264 {
265 case EBoundDelegate::Delegate:
266 FuncDelegate->Unbind();
267 break;
268
269 case EBoundDelegate::DelegateWithKey:
270 FuncDelegateWithKey->Unbind();
271 break;
272
273 case EBoundDelegate::DynamicDelegate:
274 FuncDynDelegate->Unbind();
275 break;
276 }
277 BoundDelegateType = EBoundDelegate::Unbound;
278 }
279
281 inline void Execute(const FKey Key) const
282 {
283 switch(BoundDelegateType)
284 {
285 case EBoundDelegate::Delegate:
286 if (FuncDelegate->IsBound())
287 {
288 FuncDelegate->Execute();
289 }
290 break;
291
292 case EBoundDelegate::DelegateWithKey:
293 if (FuncDelegateWithKey->IsBound())
294 {
295 FuncDelegateWithKey->Execute(Key);
296 }
297 break;
298
299 case EBoundDelegate::DynamicDelegate:
300 if (FuncDynDelegate->IsBound())
301 {
302 FuncDynDelegate->Execute(Key);
303 }
304 break;
305 }
306 }
307private:
314
315 enum class EBoundDelegate : uint8
316 {
317 Unbound,
318 Delegate,
319 DelegateWithKey,
320 DynamicDelegate
321 };
322
323 EBoundDelegate BoundDelegateType;
324};
325
328{
329private:
331 uint8 bPaired:1;
332
333public:
336
337private:
339 FName ActionName;
340
342 int32 Handle;
343
344public:
347
349 : FInputBinding()
350 , bPaired(false)
352 , ActionName(NAME_None)
354 { }
355
357 : FInputBinding()
358 , bPaired(false)
360 , ActionName(InActionName)
362 { }
363
364 FName GetActionName() const { return ActionName; }
365 bool IsPaired() const { return bPaired; }
366 int32 GetHandle() const { return Handle; }
367
369 {
370 return (IsValid() && GetHandle() == Rhs.GetHandle());
371 }
372
374 bool IsValid() { return (Handle != INDEX_NONE); }
375
376 void GenerateNewHandle();
377
378 friend class UInputComponent;
379};
380
404
405
413
415struct FInputTouchUnifiedDelegate : public TInputUnifiedDelegate<FInputTouchHandlerSignature, FInputTouchHandlerDynamicSignature>
416{
418 inline void Execute(const ETouchIndex::Type FingerIndex, const FVector Location) const
419 {
420 if (FuncDelegate.IsValid())
421 {
422 if (FuncDelegate->IsBound())
423 {
424 FuncDelegate->Execute(FingerIndex, Location);
425 }
426 }
427 else if (FuncDynDelegate.IsValid())
428 {
429 if (FuncDynDelegate->IsBound())
430 {
431 FuncDynDelegate->Execute(FingerIndex, Location);
432 }
433 }
434 }
435};
436
456
457
466
468struct FInputAxisUnifiedDelegate : public TInputUnifiedDelegate<FInputAxisHandlerSignature, FInputAxisHandlerDynamicSignature>
469{
471 inline void Execute(const float AxisValue) const
472 {
473 if (FuncDelegate.IsValid())
474 {
475 if (FuncDelegate->IsBound())
476 {
477 FuncDelegate->Execute(AxisValue);
478 }
479 }
480 else if (FuncDynDelegate.IsValid())
481 {
482 if (FuncDynDelegate->IsBound())
483 {
484 FuncDynDelegate->Execute(AxisValue);
485 }
486 }
487 }
488};
489
490
522
523
556
557
564
566struct FInputVectorAxisUnifiedDelegate : public TInputUnifiedDelegate<FInputVectorAxisHandlerSignature, FInputVectorAxisHandlerDynamicSignature>
567{
569 inline void Execute(const FVector AxisValue) const
570 {
571 if (FuncDelegate.IsValid())
572 {
573 if (FuncDelegate->IsBound())
574 {
575 FuncDelegate->Execute(AxisValue);
576 }
577 }
578 else if (FuncDynDelegate.IsValid())
579 {
580 if (FuncDynDelegate->IsBound())
581 {
582 FuncDynDelegate->Execute(AxisValue);
583 }
584 }
585 }
586};
587
618
619
627
629struct FInputGestureUnifiedDelegate : public TInputUnifiedDelegate<FInputGestureHandlerSignature, FInputGestureHandlerDynamicSignature>
630{
632 inline void Execute(const float Value) const
633 {
634 if (FuncDelegate.IsValid())
635 {
636 if (FuncDelegate->IsBound())
637 {
638 FuncDelegate->Execute(Value);
639 }
640 }
641 else if (FuncDynDelegate.IsValid())
642 {
643 if (FuncDynDelegate->IsBound())
644 {
645 FuncDynDelegate->Execute(Value);
646 }
647 }
648 }
649};
650
651
675
676
677
678UENUM()
688
692USTRUCT()
694{
696
697
698 UPROPERTY()
700
702 uint32 KeyMapBuiltForIndex;
703
706
709
711 : PlayerInput(nullptr)
712 , KeyMapBuiltForIndex(0)
713 {
714 }
715};
716
726UCLASS(NotBlueprintable, transient, config=Input, hidecategories=(Activation, "Components|Activation"), MinimalAPI)
729{
731
732
733 TArray<FInputKeyBinding> KeyBindings;
734
736 TArray<FInputTouchBinding> TouchBindings;
737
739 TArray<FInputAxisBinding> AxisBindings;
740
742 TArray<FInputAxisKeyBinding> AxisKeyBindings;
743
745 TArray<FInputVectorAxisBinding> VectorAxisBindings;
746
748 TArray<FInputGestureBinding> GestureBindings;
749
750private:
753
754 UPROPERTY(Transient, DuplicateTransient)
755 TArray<FCachedKeyToActionInfo> CachedKeyToActionInfo;
756
757 UFUNCTION()
758 ENGINE_API void OnInputOwnerEndPlayed(AActor* InOwner, EEndPlayReason::Type EndPlayReason);
759
760public:
763
766
768 ENGINE_API virtual void ClearBindingsForObject(UObject* InOwner);
769
770 ENGINE_API void ConditionalBuildKeyMap(UPlayerInput* PlayerInput);
771
779 ENGINE_API float GetAxisValue( const FName AxisName ) const;
780
788 ENGINE_API float GetAxisKeyValue( const FKey AxisKey ) const;
789
797 ENGINE_API FVector GetVectorAxisValue( const FKey AxisKey ) const;
798
804 ENGINE_API virtual bool HasBindings() const;
805
806
815
821 ENGINE_API virtual void ClearActionBindings();
822
829 FInputActionBinding& GetActionBinding(const int32 BindingIndex) const { return *ActionBindings[BindingIndex].Get(); }
830
837 int32 GetNumActionBindings() const { return ActionBindings.Num(); }
838
845 ENGINE_API void RemoveActionBinding( const int32 BindingIndex );
846 ENGINE_API void RemoveActionBinding(FName ActionName, EInputEvent KeyEvent);
847
854 ENGINE_API void RemoveActionBindingForHandle(const int32 Handle);
855
863 ENGINE_API void RemoveActionBinding(const FInputActionBinding &BindingToRemove, const int32 BindingIndex);
864
866 ENGINE_API void ClearBindingValues();
867
872 template<class UserClass>
873 FInputActionBinding& BindAction( const FName ActionName, const EInputEvent KeyEvent, UserClass* Object, typename FInputActionHandlerSignature::TMethodPtr< UserClass > Func )
874 {
875 FInputActionBinding AB( ActionName, KeyEvent );
877 return AddActionBinding(MoveTemp(AB));
878 }
879
884 template<class UserClass>
885 FInputActionBinding& BindAction( const FName ActionName, const EInputEvent KeyEvent, UserClass* Object, typename FInputActionHandlerWithKeySignature::TMethodPtr< UserClass > Func )
886 {
887 FInputActionBinding AB( ActionName, KeyEvent );
889 return AddActionBinding(MoveTemp(AB));
890 }
891
896 template< class DelegateType, class UserClass, typename... VarTypes >
897 FInputActionBinding& BindAction( const FName ActionName, const EInputEvent KeyEvent, UserClass* Object, typename DelegateType::template TMethodPtr< UserClass > Func, VarTypes... Vars )
898 {
899 FInputActionBinding AB( ActionName, KeyEvent );
900 AB.ActionDelegate.BindDelegate<DelegateType>(Object, Func, Vars...);
901 return AddActionBinding(MoveTemp(AB));
902 }
903
908 template<class UserClass>
909 FInputAxisBinding& BindAxis( const FName AxisName, UserClass* Object, typename FInputAxisHandlerSignature::TMethodPtr< UserClass > Func )
910 {
911 LogDeprecatedBindingWarning(AxisName);
912
913 FInputAxisBinding AB( AxisName );
915 AxisBindings.Emplace(MoveTemp(AB));
916 return AxisBindings.Last();
917 }
918
924 ENGINE_API void RemoveAxisBinding(const FName AxisName);
925
929 ENGINE_API void ClearAxisBindings();
930
937 {
938 LogDeprecatedBindingWarning(AxisName);
939
940 FInputAxisBinding AB( AxisName );
941 AxisBindings.Emplace(MoveTemp(AB));
942 return AxisBindings.Last();
943 }
944
949 template<class UserClass>
950 FInputAxisKeyBinding& BindAxisKey( const FKey AxisKey, UserClass* Object, typename FInputAxisHandlerSignature::TMethodPtr< UserClass > Func )
951 {
952 FInputAxisKeyBinding AB(AxisKey);
954 AxisKeyBindings.Emplace(MoveTemp(AB));
955 return AxisKeyBindings.Last();
956 }
957
964 {
965 FInputAxisKeyBinding AB(AxisKey);
966 AxisKeyBindings.Emplace(MoveTemp(AB));
967 return AxisKeyBindings.Last();
968 }
969
975 ENGINE_API void RemoveAxisKeyBinding( const FKey AxisKey);
976
981 template<class UserClass>
982 FInputVectorAxisBinding& BindVectorAxis( const FKey AxisKey, UserClass* Object, typename FInputVectorAxisHandlerSignature::TMethodPtr< UserClass > Func )
983 {
984 FInputVectorAxisBinding AB(AxisKey);
986 VectorAxisBindings.Emplace(MoveTemp(AB));
987 return VectorAxisBindings.Last();
988 }
989
996 {
997 FInputVectorAxisBinding AB(AxisKey);
998 VectorAxisBindings.Emplace(MoveTemp(AB));
999 return VectorAxisBindings.Last();
1000 }
1001
1006 template<class UserClass>
1007 FInputKeyBinding& BindKey( const FInputChord Chord, const EInputEvent KeyEvent, UserClass* Object, typename FInputActionHandlerSignature::TMethodPtr< UserClass > Func )
1008 {
1009 FInputKeyBinding KB(Chord, KeyEvent);
1010 KB.KeyDelegate.BindDelegate(Object, Func);
1011 KeyBindings.Emplace(MoveTemp(KB));
1012 return KeyBindings.Last();
1013 }
1014
1019 template<class UserClass>
1020 FInputKeyBinding& BindKey( const FKey Key, const EInputEvent KeyEvent, UserClass* Object, typename FInputActionHandlerSignature::TMethodPtr< UserClass > Func )
1021 {
1022 return BindKey(FInputChord(Key, false, false, false, false), KeyEvent, Object, Func);
1023 }
1024
1029 template <class UserClass>
1030 FInputKeyBinding& BindKey(const FKey Key, const EInputEvent KeyEvent, UserClass* Object, typename FInputActionHandlerWithKeySignature::TMethodPtr<UserClass> Func)
1031 {
1032 FInputKeyBinding KB(FInputChord(Key, false, false, false, false), KeyEvent);
1033 KB.KeyDelegate.BindDelegate(Object, Func);
1034 KeyBindings.Emplace(MoveTemp(KB));
1035 return KeyBindings.Last();
1036 }
1037
1042 template<class UserClass>
1043 FInputTouchBinding& BindTouch( const EInputEvent KeyEvent, UserClass* Object, typename FInputTouchHandlerSignature::TMethodPtr< UserClass > Func )
1044 {
1045 FInputTouchBinding TB(KeyEvent);
1046 TB.TouchDelegate.BindDelegate(Object, Func);
1047 TouchBindings.Emplace(MoveTemp(TB));
1048 return TouchBindings.Last();
1049 }
1050
1055 template<class UserClass>
1056 FInputGestureBinding& BindGesture( const FKey GestureKey, UserClass* Object, typename FInputGestureHandlerSignature::TMethodPtr< UserClass > Func )
1057 {
1058 FInputGestureBinding GB(GestureKey);
1059 GB.GestureDelegate.BindDelegate(Object, Func);
1060 GestureBindings.Emplace(MoveTemp(GB));
1061 return GestureBindings.Last();
1062 }
1063
1064private:
1065
1071 ENGINE_API static void LogDeprecatedBindingWarning(const FName BindingName);
1072
1074 ENGINE_API void GetActionsBoundToKey(UPlayerInput* PlayerInput, FKey Key, TArray<TSharedPtr<FInputActionBinding>>& Actions) const;
1075
1077
1079 UFUNCTION(BlueprintCallable, meta=(DeprecatedFunction, DeprecationMessage="Use PlayerController.IsInputKeyDown instead."))
1080 ENGINE_API bool IsControllerKeyDown(FKey Key) const;
1081
1083 UFUNCTION(BlueprintCallable, meta=(DeprecatedFunction, DeprecationMessage="Use PlayerController.WasInputKeyJustPressed instead."))
1084 ENGINE_API bool WasControllerKeyJustPressed(FKey Key) const;
1085
1087 UFUNCTION(BlueprintCallable, meta=(DeprecatedFunction, DeprecationMessage="Use PlayerController.WasInputKeyJustReleased instead."))
1088 ENGINE_API bool WasControllerKeyJustReleased(FKey Key) const;
1089
1091 UFUNCTION(BlueprintCallable, meta=(DeprecatedFunction, DeprecationMessage="Use PlayerController.GetInputAnalogKeyState instead."))
1092 ENGINE_API float GetControllerAnalogKeyState(FKey Key) const;
1093
1095 UFUNCTION(BlueprintCallable, meta=(DeprecatedFunction, DeprecationMessage="Use PlayerController.GetInputVectorKeyState instead."))
1096 ENGINE_API FVector GetControllerVectorKeyState(FKey Key) const;
1097
1099 UFUNCTION(BlueprintCallable, meta=(DeprecatedFunction, DeprecationMessage="Use PlayerController.GetInputTouchState instead."))
1100 ENGINE_API void GetTouchState(int32 FingerIndex, float& LocationX, float& LocationY, bool& bIsCurrentlyPressed) const;
1101
1103 UFUNCTION(BlueprintCallable, meta=(DeprecatedFunction, DeprecationMessage="Use PlayerController.GetInputKeyTimeDown instead."))
1104 ENGINE_API float GetControllerKeyTimeDown(FKey Key) const;
1105
1107 UFUNCTION(BlueprintCallable, meta=(DeprecatedFunction, DeprecationMessage="Use PlayerController.GetInputMouseDelta instead."))
1108 ENGINE_API void GetControllerMouseDelta(float& DeltaX, float& DeltaY) const;
1109
1111 UFUNCTION(BlueprintCallable, meta=(DeprecatedFunction, DeprecationMessage="Use PlayerController.GetInputAnalogStickState instead."))
1112 ENGINE_API void GetControllerAnalogStickState(EControllerAnalogStick::Type WhichStick, float& StickX, float& StickY) const;
1113
1114 friend class UEnhancedInputComponent; // TEMP: Support for ongoing input rework
1115};
1116
1118{
1119private:
1120 static void Get(UInputComponent* InputComponent, UPlayerInput* PlayerInput, FKey Key, TArray<TSharedPtr<FInputActionBinding>>& Actions)
1121 {
1122 InputComponent->GetActionsBoundToKey(PlayerInput, Key, Actions);
1123 }
1124
1125 friend UPlayerInput;
1126};
#define ensure( InExpression)
Definition AssertionMacros.h:464
@ INDEX_NONE
Definition CoreMiscDefines.h:150
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
TSharedRef< InObjectType, InMode > MakeShared(InArgTypes &&... Args)
Definition SharedPointer.h:2009
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE(DelegateName)
Definition DelegateCombinations.h:20
#define DECLARE_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:57
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
#define DECLARE_DYNAMIC_DELEGATE_OneParam(DelegateName, Param1Type, Param1Name)
Definition DelegateCombinations.h:52
#define DECLARE_DYNAMIC_DELEGATE_TwoParams(DelegateName, Param1Type, Param1Name, Param2Type, Param2Name)
Definition DelegateCombinations.h:61
EInputEvent
Definition EngineBaseTypes.h:31
@ IE_Pressed
Definition EngineBaseTypes.h:32
return true
Definition ExternalRpcRegistry.cpp:601
const void * FDelegateUserObjectConst
Definition IDelegateInstance.h:108
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition NameTypes.h:617
Definition UnrealType.h:3087
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType & Last(SizeType IndexFromTheEnd=0) UE_LIFETIMEBOUND
Definition Array.h:1263
UE_FORCEINLINE_HINT SizeType Emplace(ArgsType &&... Args)
Definition Array.h:2561
Definition EnumAsByte.h:22
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
UE_FORCEINLINE_HINT void Reset()
Definition SharedPointer.h:1120
UE_FORCEINLINE_HINT const bool IsValid() const
Definition SharedPointer.h:1085
Definition ActorComponent.h:152
Definition InputComponent.h:729
FInputTouchBinding & BindTouch(const EInputEvent KeyEvent, UserClass *Object, typename FInputTouchHandlerSignature::TMethodPtr< UserClass > Func)
Definition InputComponent.h:1043
FInputActionBinding & BindAction(const FName ActionName, const EInputEvent KeyEvent, UserClass *Object, typename FInputActionHandlerWithKeySignature::TMethodPtr< UserClass > Func)
Definition InputComponent.h:885
FInputVectorAxisBinding & BindVectorAxis(const FKey AxisKey, UserClass *Object, typename FInputVectorAxisHandlerSignature::TMethodPtr< UserClass > Func)
Definition InputComponent.h:982
FInputKeyBinding & BindKey(const FKey Key, const EInputEvent KeyEvent, UserClass *Object, typename FInputActionHandlerSignature::TMethodPtr< UserClass > Func)
Definition InputComponent.h:1020
FInputAxisKeyBinding & BindAxisKey(const FKey AxisKey)
Definition InputComponent.h:963
FInputActionBinding & GetActionBinding(const int32 BindingIndex) const
Definition InputComponent.h:829
int32 GetNumActionBindings() const
Definition InputComponent.h:837
FInputKeyBinding & BindKey(const FKey Key, const EInputEvent KeyEvent, UserClass *Object, typename FInputActionHandlerWithKeySignature::TMethodPtr< UserClass > Func)
Definition InputComponent.h:1030
FInputAxisBinding & BindAxis(const FName AxisName)
Definition InputComponent.h:936
FInputGestureBinding & BindGesture(const FKey GestureKey, UserClass *Object, typename FInputGestureHandlerSignature::TMethodPtr< UserClass > Func)
Definition InputComponent.h:1056
FInputActionBinding & BindAction(const FName ActionName, const EInputEvent KeyEvent, UserClass *Object, typename DelegateType::template TMethodPtr< UserClass > Func, VarTypes... Vars)
Definition InputComponent.h:897
int32 Priority
Definition InputComponent.h:762
FInputActionBinding & BindAction(const FName ActionName, const EInputEvent KeyEvent, UserClass *Object, typename FInputActionHandlerSignature::TMethodPtr< UserClass > Func)
Definition InputComponent.h:873
FInputAxisBinding & BindAxis(const FName AxisName, UserClass *Object, typename FInputAxisHandlerSignature::TMethodPtr< UserClass > Func)
Definition InputComponent.h:909
FInputKeyBinding & BindKey(const FInputChord Chord, const EInputEvent KeyEvent, UserClass *Object, typename FInputActionHandlerSignature::TMethodPtr< UserClass > Func)
Definition InputComponent.h:1007
uint8 bBlockInput
Definition InputComponent.h:765
FInputAxisKeyBinding & BindAxisKey(const FKey AxisKey, UserClass *Object, typename FInputAxisHandlerSignature::TMethodPtr< UserClass > Func)
Definition InputComponent.h:950
FInputVectorAxisBinding & BindVectorAxis(const FKey AxisKey)
Definition InputComponent.h:995
Definition Object.h:95
Definition PlayerInput.h:422
#define KB
Definition lz4.cpp:242
#define GB
Definition lz4.cpp:244
Definition InputComponent.h:680
Type
Definition InputComponent.h:682
@ CAS_LeftStick
Definition InputComponent.h:683
@ CAS_MAX
Definition InputComponent.h:685
@ CAS_RightStick
Definition InputComponent.h:684
Type
Definition EngineTypes.h:3431
@ false
Definition radaudio_common.h:23
Definition InputComponent.h:694
Definition InputComponent.h:1118
Definition InputComponent.h:328
TEnumAsByte< EInputEvent > KeyEvent
Definition InputComponent.h:335
FInputActionBinding(const FName InActionName, const EInputEvent InKeyEvent)
Definition InputComponent.h:356
FInputActionUnifiedDelegate ActionDelegate
Definition InputComponent.h:346
bool IsValid()
Definition InputComponent.h:374
bool operator==(const FInputActionBinding &Rhs)
Definition InputComponent.h:368
void GenerateNewHandle()
Definition InputComponent.cpp:11
FInputActionBinding()
Definition InputComponent.h:348
FName GetActionName() const
Definition InputComponent.h:364
bool IsPaired() const
Definition InputComponent.h:365
int32 GetHandle() const
Definition InputComponent.h:366
Definition InputComponent.h:130
void Unbind()
Definition InputComponent.h:261
void BindDelegate(UserClass *Object, typename DelegateType::template TMethodPtr< UserClass > Func, VarTypes... Vars)
Definition InputComponent.h:226
FInputActionHandlerSignature & GetDelegateForManualSet()
Definition InputComponent.h:243
bool IsBound() const
Definition InputComponent.h:137
void BindDelegate(UserClass *Object, typename FInputActionHandlerSignature::template TMethodPtr< UserClass > Func)
Definition InputComponent.h:210
bool IsBoundToObject(FDelegateUserObjectConst Object) const
Definition InputComponent.h:155
FInputActionUnifiedDelegate(FInputActionHandlerSignature D)
Definition InputComponent.h:132
const UObject * GetUObject() const
Definition InputComponent.h:173
FInputActionUnifiedDelegate(FInputActionHandlerDynamicSignature D)
Definition InputComponent.h:134
void Execute(const FKey Key) const
Definition InputComponent.h:281
FInputActionHandlerWithKeySignature & GetDelegateWithKeyForManualSet()
Definition InputComponent.h:252
void BindDelegate(UObject *Object, const FName FuncName)
Definition InputComponent.h:234
void BindDelegate(UserClass *Object, typename FInputActionHandlerWithKeySignature::template TMethodPtr< UserClass > Func)
Definition InputComponent.h:218
FInputActionUnifiedDelegate()
Definition InputComponent.h:131
const void * GetObject() const
Definition InputComponent.h:191
FInputActionUnifiedDelegate(FInputActionHandlerWithKeySignature D)
Definition InputComponent.h:133
Definition InputComponent.h:493
FName AxisName
Definition InputComponent.h:495
FInputAxisUnifiedDelegate AxisDelegate
Definition InputComponent.h:502
FInputAxisBinding(const FName InAxisName)
Definition InputComponent.h:516
FInputAxisBinding()
Definition InputComponent.h:510
float AxisValue
Definition InputComponent.h:508
Definition InputComponent.h:526
FKey AxisKey
Definition InputComponent.h:534
FInputAxisUnifiedDelegate AxisDelegate
Definition InputComponent.h:541
FInputAxisKeyBinding()
Definition InputComponent.h:543
FInputAxisKeyBinding(const FKey InAxisKey)
Definition InputComponent.h:548
float AxisValue
Definition InputComponent.h:531
Definition InputComponent.h:469
void Execute(const float AxisValue) const
Definition InputComponent.h:471
Definition InputComponent.h:111
FInputBinding()
Definition InputComponent.h:118
uint8 bConsumeInput
Definition InputComponent.h:113
uint8 bExecuteWhenPaused
Definition InputComponent.h:116
Definition InputChord.h:24
Definition InputComponent.h:654
float GestureValue
Definition InputComponent.h:656
FInputGestureUnifiedDelegate GestureDelegate
Definition InputComponent.h:662
FInputGestureBinding(const FKey InGestureKey)
Definition InputComponent.h:669
FKey GestureKey
Definition InputComponent.h:659
FInputGestureBinding()
Definition InputComponent.h:664
Definition InputComponent.h:630
void Execute(const float Value) const
Definition InputComponent.h:632
Definition InputComponent.h:383
TEnumAsByte< EInputEvent > KeyEvent
Definition InputComponent.h:385
FInputActionUnifiedDelegate KeyDelegate
Definition InputComponent.h:391
FInputKeyBinding()
Definition InputComponent.h:393
FInputKeyBinding(const FInputChord InChord, const EInputEvent InKeyEvent)
Definition InputComponent.h:398
FInputChord Chord
Definition InputComponent.h:388
Definition InputComponent.h:439
TEnumAsByte< EInputEvent > KeyEvent
Definition InputComponent.h:441
FInputTouchBinding(const enum EInputEvent InKeyEvent)
Definition InputComponent.h:451
FInputTouchBinding()
Definition InputComponent.h:446
FInputTouchUnifiedDelegate TouchDelegate
Definition InputComponent.h:444
Definition InputComponent.h:416
void Execute(const ETouchIndex::Type FingerIndex, const FVector Location) const
Definition InputComponent.h:418
Definition InputComponent.h:590
FInputVectorAxisBinding()
Definition InputComponent.h:607
FVector AxisValue
Definition InputComponent.h:595
FKey AxisKey
Definition InputComponent.h:598
FInputVectorAxisUnifiedDelegate AxisDelegate
Definition InputComponent.h:605
FInputVectorAxisBinding(const FKey InAxisKey)
Definition InputComponent.h:611
Definition InputComponent.h:567
void Execute(const FVector AxisValue) const
Definition InputComponent.h:569
Definition InputCoreTypes.h:50
INPUTCORE_API bool IsAxis3D() const
Definition InputCoreTypes.cpp:1356
INPUTCORE_API bool IsAxis1D() const
Definition InputCoreTypes.cpp:1344
INPUTCORE_API bool IsAxis2D() const
Definition InputCoreTypes.cpp:1350
Definition InputComponent.h:17
void BindDelegate(UObject *Object, const FName FuncName)
Definition InputComponent.h:58
TSharedPtr< DelegateType > FuncDelegate
Definition InputComponent.h:94
const DelegateType & GetDelegate() const
Definition InputComponent.h:81
TInputUnifiedDelegate(DynamicDelegateType D)
Definition InputComponent.h:20
const DynamicDelegateType & GetDynamicDelegate() const
Definition InputComponent.h:87
TInputUnifiedDelegate()
Definition InputComponent.h:18
TInputUnifiedDelegate(DelegateType D)
Definition InputComponent.h:19
DelegateType & GetDelegateForManualSet()
Definition InputComponent.h:66
bool IsBound() const
Definition InputComponent.h:23
void BindDelegate(UserClass *Object, typename DelegateType::template TMethodPtr< UserClass > Func)
Definition InputComponent.h:51
static const DynamicDelegateType UnboundDynamicDelegate
Definition InputComponent.h:99
static const DelegateType UnboundDelegate
Definition InputComponent.h:98
void Unbind()
Definition InputComponent.h:74
bool IsBoundToObject(void const *Object) const
Definition InputComponent.h:29
TSharedPtr< DynamicDelegateType > FuncDynDelegate
Definition InputComponent.h:96
Definition WeakObjectPtrTemplates.h:25