UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CollisionProfile.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"
9
15#include "CollisionProfile.generated.h"
16
17struct FBodyInstance;
20
22USTRUCT(BlueprintType)
24{
26
30
32 : Name(InName)
33 {}
34
35 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Collision)
37};
38
39
43USTRUCT()
90
91
95USTRUCT()
97{
99
100
101 UPROPERTY()
103
105 UPROPERTY()
107
109 UPROPERTY()
110 bool bTraceType;
111
113 UPROPERTY()
114 bool bStaticObject;
115
117 UPROPERTY()
119
121 : Channel(ECC_WorldStatic)
122 , DefaultResponse(ECR_Block)
123 , bTraceType(false)
124 , bStaticObject(false)
125 { }
126
128 {
129 return (Channel == Other.Channel);
130 }
131};
132
133
141USTRUCT()
143{
145
146
147 UPROPERTY()
149
151 UPROPERTY()
152 TArray<FResponseChannel> CustomResponses;
153};
154
155
159UCLASS(config=Engine, defaultconfig, MinimalAPI, meta=(DisplayName="Collision"))
161{
163
164private:
165
169
172 TArray<FCustomChannelSetup> DefaultChannelResponses;
173
176 TArray<FCustomProfile> EditProfiles;
177
180 TArray<FRedirector> ProfileRedirects;
181
184 TArray<FRedirector> CollisionChannelRedirects;
185
186public:
187
196
198 ENGINE_API static UCollisionProfile* Get();
199
203
205 virtual void PostReloadConfig(class FProperty* PropertyThatWasLoaded) override;
209 ENGINE_API static void GetProfileNames(TArray<TSharedPtr<FName>>& OutNameList);
210
212 ENGINE_API static bool GetChannelAndResponseParams(FName ProfileName, ECollisionChannel &CollisionChannel, FCollisionResponseParams &ResponseParams);
213
215 bool ReadConfig(FName ProfileName, struct FBodyInstance& BodyInstance) const;
216
218 ENGINE_API bool GetProfileTemplate(FName ProfileName, struct FCollisionResponseTemplate& ProfileData) const;
219
221 ENGINE_API const FName* LookForProfileRedirect(FName ProfileName) const;
222
224 int32 GetNumOfProfiles() const { return Profiles.Num(); }
225
227 ENGINE_API const FCollisionResponseTemplate* GetProfileByIndex(int32 Index) const;
228
236 ENGINE_API void LoadProfileConfig(bool bForceInit=false);
237
240 int32 ReturnContainerIndexFromChannelName(FName& InOutDisplayName) const;
241 ENGINE_API FName ReturnChannelNameFromContainerIndex(int32 ContainerIndex) const;
242
244 ENGINE_API ECollisionChannel ConvertToCollisionChannel(bool TraceType, int32 Index) const;
245
250 ENGINE_API EObjectTypeQuery ConvertToObjectType(ECollisionChannel CollisionChannel) const;
251
256 ENGINE_API ETraceTypeQuery ConvertToTraceType(ECollisionChannel CollisionChannel) const;
257
258 /* custom collision profile name that you can modify what you'd like */
260
261#if WITH_EDITOR
262 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
263#endif //WITH_EDITOR
264private:
265
269 TMap<FName, FName> ProfileRedirectsMap;
270
274 TMap<FName, FName> CollisionChannelRedirectsMap;
275
280 TArray<FName> ChannelDisplayNames;
281
286 TArray<ECollisionChannel> ObjectTypeMapping;
287 TArray<ECollisionChannel> TraceTypeMapping;
288
290 bool FindProfileData(const TArray<FCollisionResponseTemplate>& ProfileList, FName ProfileName, struct FCollisionResponseTemplate& ProfileData) const;
291
297 bool CheckRedirect(FName ProfileName, FBodyInstance& BodyInstance, struct FCollisionResponseTemplate& Template) const;
298
303
307 int32 LoadCustomResponses(FCollisionResponseTemplate& Template, const UEnum* CollisionChannelEnum, TArray<FResponseChannel>& CustomResponses) const;
311 ENGINE_API void SaveCustomResponses(FCollisionResponseTemplate& Template) const;
312
313 ENGINE_API void AddChannelRedirect(FName OldName, FName NewName);
314 ENGINE_API void AddProfileRedirect(FName OldName, FName NewName);
315
316 friend class FCollisionProfileDetails;
318};
319
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
EObjectTypeQuery
Definition EngineTypes.h:1160
ETraceTypeQuery
Definition EngineTypes.h:1200
ECollisionChannel
Definition EngineTypes.h:1088
ECollisionResponse
Definition EngineTypes.h:1240
bool IsEqual(TRangeBound< FFrameNumber > A, TRangeBound< FFrameNumber > B)
Definition MovieSceneTransformTests.cpp:15
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
Definition Engine.Build.cs:7
Definition NameTypes.h:617
Definition UnrealType.h:174
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition EnumAsByte.h:22
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition CollisionProfile.h:161
static ENGINE_API const FName BlockAll_ProfileName
Definition CollisionProfile.h:190
static ENGINE_API FName CustomCollisionProfileName
Definition CollisionProfile.h:259
static ENGINE_API const FName BlockAllDynamic_ProfileName
Definition CollisionProfile.h:192
static ENGINE_API const FName Vehicle_ProfileName
Definition CollisionProfile.h:194
static ENGINE_API const FName NoCollision_ProfileName
Definition CollisionProfile.h:189
static ENGINE_API const FName Pawn_ProfileName
Definition CollisionProfile.h:193
static ENGINE_API const FName DefaultProjectile_ProfileName
Definition CollisionProfile.h:195
FOnLoadProfileConfig OnLoadProfileConfig
Definition CollisionProfile.h:202
int32 GetNumOfProfiles() const
Definition CollisionProfile.h:224
static ENGINE_API const FName PhysicsActor_ProfileName
Definition CollisionProfile.h:191
DECLARE_MULTICAST_DELEGATE_OneParam(FOnLoadProfileConfig, UCollisionProfile *)
Definition DeveloperSettings.h:24
Definition Class.h:2791
Definition EngineTypes.h:1571
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition BodyInstance.h:320
Definition CollisionProfile.h:24
FCollisionProfileName(const FName InName)
Definition CollisionProfile.h:31
Definition CollisionProfile.h:321
static ENGINE_API bool AddProfileTemplate(FCollisionResponseTemplate &NewProfileData)
Definition CollisionProfile.cpp:832
Definition EngineTypes.h:1339
Definition CollisionQueryParams.h:324
Definition CollisionProfile.h:45
ENGINE_API void CreateCustomResponsesFromResponseContainers()
Definition CollisionProfile.h:97
bool operator==(const FCustomChannelSetup &Other) const
Definition CollisionProfile.h:127
Definition CollisionProfile.h:143
Definition UnrealType.h:6865
Definition EngineTypes.h:1307