UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Interface_AssetUserData.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "Templates/Casts.h"
8#include "UObject/Interface.h"
10#include "Interface_AssetUserData.generated.h"
11
13UINTERFACE(MinimalApi, meta=(CannotImplementInterfaceInBlueprint))
18
20{
22
23 virtual void AddAssetUserData(UAssetUserData* InUserData) {}
24
32 UFUNCTION(BlueprintCallable, Category=AssetUserData, meta=(DeterminesOutputType="InUserDataClass"))
33 virtual UAssetUserData* GetAssetUserDataOfClass(TSubclassOf<UAssetUserData> InUserDataClass)
34 {
35 return nullptr;
36 }
37
45 UFUNCTION(BlueprintCallable, Category=AssetUserData)
46 virtual bool HasAssetUserDataOfClass(TSubclassOf<UAssetUserData> InUserDataClass)
47 {
48 return GetAssetUserDataOfClass(InUserDataClass) != nullptr;
49 }
50
58 UFUNCTION(BlueprintCallable, Category=AssetUserData)
59 virtual bool AddAssetUserDataOfClass(TSubclassOf<UAssetUserData> InUserDataClass)
60 {
61 check(InUserDataClass.Get() != nullptr);
62 AddAssetUserData(NewObject<UAssetUserData>(_getUObject(), InUserDataClass.Get()));
63 return GetAssetUserDataOfClass(InUserDataClass.Get()) != nullptr;
64 }
65
66 virtual const TArray<UAssetUserData*>* GetAssetUserDataArray() const
67 {
68 return nullptr;
69 }
70
71 template<typename T>
72 T* GetAssetUserData()
73 {
74 return Cast<T>( GetAssetUserDataOfClass(T::StaticClass()) );
75 }
76
77 template<typename T>
78 T* GetAssetUserDataChecked()
79 {
80 return CastChecked<T>(GetAssetUserDataOfClass(T::StaticClass()));
81 }
82
83 virtual void RemoveUserDataOfClass(TSubclassOf<UAssetUserData> InUserDataClass) {}
84
85};
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UINTERFACE(...)
Definition ObjectMacros.h:780
#define GENERATED_IINTERFACE_BODY(...)
Definition ObjectMacros.h:770
#define GENERATED_UINTERFACE_BODY(...)
Definition ObjectMacros.h:769
Definition Interface_AssetUserData.h:20
Definition Array.h:670
Definition SubclassOf.h:30
Definition AssetUserData.h:18
Definition Interface_AssetUserData.h:15
Definition Interface.h:19