UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ForceFeedbackComponent.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3
4#pragma once
7#include "Tickable.h"
8#include "UObject/GCObject.h"
9#include "ForceFeedbackComponent.generated.h"
10
14
16{
17private:
18
20 : World(InWorld)
21 {
22 }
23
24public:
25
26 static FForceFeedbackManager* Get(UWorld* World, bool bCreateIfMissing = false);
27
30
31 void Update(FVector Location, FForceFeedbackValues& Values, const FPlatformUserId UserId) const;
32
33 void DrawDebug(const FVector Location, FDisplayDebugManager& DisplayDebugManager, const FPlatformUserId UserId) const;
34
35private:
36 virtual void AddReferencedObjects( FReferenceCollector& Collector ) override;
37 virtual FString GetReferencerName() const override;
38 virtual UWorld* GetTickableGameObjectWorld() const override;
39 virtual void Tick( float DeltaTime ) override;
40 virtual bool IsTickable() const override;
41 virtual TStatId GetStatId() const override;
42
44 TArray<TObjectPtr<UForceFeedbackComponent>> ActiveForceFeedbackComponents;
45
46 static void OnWorldCleanup(UWorld* World, bool bSessionEnded, bool bCleanupResources);
47
48 static TArray<FForceFeedbackManager*> PerWorldForceFeedbackManagers;
49 static FDelegateHandle OnWorldCleanupHandle;
50};
51
54
58UCLASS(ClassGroup=(Utility), hidecategories=(Object, ActorComponent, Physics, Rendering, Mobility, LOD), ShowCategories=Trigger, meta=(BlueprintSpawnableComponent), MinimalAPI)
59class UForceFeedbackComponent : public USceneComponent
60{
62
63public:
64
66
68 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=ForceFeedback)
69 TObjectPtr<UForceFeedbackEffect> ForceFeedbackEffect;
70
72 UPROPERTY()
73 uint8 bAutoDestroy:1;
74
76 UPROPERTY()
77 uint8 bStopWhenOwnerDestroyed:1;
78
79 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=ForceFeedback)
80 uint8 bLooping:1;
81
83 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=ForceFeedback)
84 uint8 bIgnoreTimeDilation:1;
85
87 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Attenuation)
88 uint8 bOverrideAttenuation:1;
89
91 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=ForceFeedback)
93
95 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Attenuation, meta=(EditCondition="!bOverrideAttenuation"))
96 TObjectPtr<class UForceFeedbackAttenuation> AttenuationSettings;
97
99 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Attenuation, meta=(EditCondition="bOverrideAttenuation"))
100 struct FForceFeedbackAttenuationSettings AttenuationOverrides;
101
103 UPROPERTY(BlueprintAssignable)
105
107 UFUNCTION(BlueprintCallable, Category="ForceFeedback")
109
111 UFUNCTION(BlueprintCallable, Category="ForceFeedback")
112 ENGINE_API virtual void Play(float StartTime = 0.f);
113
115 UFUNCTION(BlueprintCallable, Category="ForceFeedback")
116 ENGINE_API virtual void Stop();
117
119 UFUNCTION(BlueprintCallable, Category="ForceFeedback")
121
123 UFUNCTION(BlueprintCallable, Category="ForceFeedback")
125
126 //~ Begin UObject Interface.
127#if WITH_EDITORONLY_DATA
128 ENGINE_API virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
129 ENGINE_API virtual void Serialize(FArchive& Ar) override;
130#endif // WITH_EDITOR
131 //~ End UObject Interface.
132
133 //~ Begin USceneComponent Interface
134 ENGINE_API virtual void Activate(bool bReset=false) override;
135 ENGINE_API virtual void Deactivate() override;
136 //~ End USceneComponent Interface
137
138 //~ Begin ActorComponent Interface.
139#if WITH_EDITORONLY_DATA
140 ENGINE_API virtual void OnRegister() override;
141#endif
142 ENGINE_API virtual void OnUnregister() override;
143 ENGINE_API virtual const UObject* AdditionalStatObject() const override;
144 ENGINE_API virtual bool IsReadyForOwnerToAutoDestroy() const override;
145 //~ End ActorComponent Interface.
146
148 ENGINE_API const FForceFeedbackAttenuationSettings* GetAttenuationSettingsToApply() const;
149
150 UFUNCTION(BlueprintCallable, Category = "ForceFeedback", meta = (DisplayName = "Get Attenuation Settings To Apply", ScriptName="GetAttenuationSettingsToApply"))
151 ENGINE_API bool BP_GetAttenuationSettingsToApply(FForceFeedbackAttenuationSettings& OutAttenuationSettings) const;
152
154 ENGINE_API void CollectAttenuationShapesForVisualization(TMultiMap<EAttenuationShape::Type, FBaseAttenuationSettings::AttenuationShapeDetails>& ShapeDetailsMap) const;
155
156private:
157
158 float PlayTime;
159
160#if WITH_EDITORONLY_DATA
163#endif
164
165 ENGINE_API bool Advance(float DeltaTime);
166 ENGINE_API void Update(FVector Location, FForceFeedbackValues& Values, const FPlatformUserId UserId) const;
167 ENGINE_API void StopInternal(bool bRemoveFromManager = true);
168
170};
171
172
173
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type, Param1Name)
Definition DelegateCombinations.h:53
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UCLASS(...)
Definition ObjectMacros.h:776
@ Stop
Definition PrecomputedVolumetricLightmapStreaming.cpp:26
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Archive.h:1208
Definition IDelegateInstance.h:14
Definition ForceFeedbackComponent.h:16
static FForceFeedbackManager * Get(UWorld *World, bool bCreateIfMissing=false)
Definition ForceFeedbackComponent.cpp:23
void DrawDebug(const FVector Location, FDisplayDebugManager &DisplayDebugManager, const FPlatformUserId UserId) const
Definition ForceFeedbackComponent.cpp:127
void AddActiveComponent(UForceFeedbackComponent *ForceFeedbackComponent)
Definition ForceFeedbackComponent.cpp:64
void RemoveActiveComponent(UForceFeedbackComponent *ForceFeedbackComponent)
Definition ForceFeedbackComponent.cpp:69
Definition GCObject.h:128
Definition UObjectGlobals.h:1292
Definition UObjectGlobals.h:2492
Definition Tickable.h:135
Definition Array.h:670
Definition ForceFeedbackAttenuation.h:21
Definition ForceFeedbackEffect.h:119
Definition Object.h:95
Definition World.h:918
Definition Attenuation.h:28
Definition Attenuation.h:57
Definition Canvas.h:54
Definition ForceFeedbackAttenuation.h:9
Definition IInputInterface.h:26
Definition CoreMiscDefines.h:470
Definition UnrealType.h:6865
Definition ObjectPtr.h:488
Definition LightweightStats.h:416