UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FMemberReference Struct Reference

#include <MemberReference.h>

Public Member Functions

 FMemberReference ()
 
template<class TFieldType >
void SetFromField (const typename TFieldType::BaseFieldClass *InField, const bool bIsConsideredSelfContext, UClass *OwnerClass=nullptr)
 
ENGINE_API void SetExternalMember (FName InMemberName, TSubclassOf< class UObject > InMemberParentClass)
 
ENGINE_API void SetExternalMember (FName InMemberName, TSubclassOf< class UObject > InMemberParentClass, const FGuid &InMemberGuid)
 
ENGINE_API void SetGlobalField (FName InFieldName, UPackage *InParentPackage)
 
ENGINE_API void SetExternalDelegateMember (FName InMemberName)
 
ENGINE_API void SetSelfMember (FName InMemberName)
 
ENGINE_API void SetSelfMember (FName InMemberName, const FGuid &InMemberGuid)
 
ENGINE_API void SetLocalMember (FName InMemberName, UStruct *InScope, const FGuid InMemberGuid)
 
ENGINE_API void SetLocalMember (FName InMemberName, FString InScopeName, const FGuid InMemberGuid)
 
ENGINE_API void SetDirect (const FName InMemberName, const FGuid InMemberGuid, TSubclassOf< class UObject > InMemberParentClass, bool bIsConsideredSelfContext)
 
ENGINE_API void InvalidateScope ()
 
FName GetMemberName () const
 
FGuid GetMemberGuid () const
 
UClassGetMemberParentClass () const
 
UPackageGetMemberParentPackage () const
 
bool IsSelfContext () const
 
bool IsLocalScope () const
 
ENGINE_API bool IsSparseClassData (const UClass *OwningClass) const
 
UClassGetMemberParentClass (UClass *SelfScope) const
 
UStructGetMemberScope (UClass *InMemberParentClass) const
 
FString GetMemberScopeName () const
 
bool IsSameReference (const FMemberReference &InReference) const
 
bool IsDeprecated () const
 
UClassGetScope (UClass *SelfScope=nullptr) const
 
template<class TFieldType >
TFieldTypeResolveMember (UClass *SelfScope=nullptr, const bool bAlwaysFollowRedirects=false) const
 
template<>
UFunctionResolveMember (UClass *SelfScope, const bool bAlwaysFollowRedirects) const
 
template<class TFieldType >
TFieldTypeResolveMember (UBlueprint *SelfScope)
 
template<class TFieldType , class TFieldTypeClass >
TFieldTypeResolveMemberImpl (UClass *SelfScope, TFieldTypeClass *FieldClas, const bool bAlwaysFollowRedirects, const bool bIsUFunctionOrMulticastDelegate) const
 
ENGINE_API FPropertyResolveMemberProperty (UClass *SelfScope, const bool bAlwaysFollowRedirects, FFieldClass *FieldClass) const
 
ENGINE_API UFunctionResolveMemberFunction (UClass *SelfScope, const bool bAlwaysFollowRedirects) const
 

Static Public Member Functions

static ENGINE_API UFieldFindRemappedField (UClass *FieldClass, UClass *InitialScope, FName InitialName, bool bInitialScopeMustBeOwnerOfFieldForParentScopeRedirect=false)
 
static ENGINE_API FFieldFindRemappedField (FFieldClass *FieldClass, UClass *InitialScope, FName InitialName, bool bInitialScopeMustBeOwnerOfFieldForParentScopeRedirect=false)
 
template<class TFieldType >
static TFieldTypeFindRemappedField (UClass *InitialScope, FName InitialName, bool bInitialScopeMustBeOwnerOfFieldForParentScopeRedirect=false)
 
template<class TFieldType >
static void FillSimpleMemberReference (const TFieldType *InField, FSimpleMemberReference &OutReference)
 
template<class TFieldType >
static TFieldTypeResolveSimpleMemberReference (const FSimpleMemberReference &Reference, UClass *SelfScope=nullptr)
 

Protected Attributes

TObjectPtr< UObjectMemberParent
 
FString MemberScope
 
FName MemberName
 
FGuid MemberGuid
 
bool bSelfContext
 
bool bWasDeprecated
 

Constructor & Destructor Documentation

◆ FMemberReference()

FMemberReference::FMemberReference ( )
inline

Member Function Documentation

◆ FillSimpleMemberReference()

template<class TFieldType >
static void FMemberReference::FillSimpleMemberReference ( const TFieldType InField,
FSimpleMemberReference OutReference 
)
inlinestatic

◆ FindRemappedField() [1/3]

FField * FMemberReference::FindRemappedField ( FFieldClass FieldClass,
UClass InitialScope,
FName  InitialName,
bool  bInitialScopeMustBeOwnerOfFieldForParentScopeRedirect = false 
)
static

◆ FindRemappedField() [2/3]

UField * FMemberReference::FindRemappedField ( UClass FieldClass,
UClass InitialScope,
FName  InitialName,
bool  bInitialScopeMustBeOwnerOfFieldForParentScopeRedirect = false 
)
static

Searches the field redirect map for the specified named field in the scope, and returns the remapped field if found

Parameters
FieldClassUClass of field type we are looking for
InitialScopeThe scope the field was initially defined in. The function will search up into parent scopes to attempt to find remappings
InitialNameThe name of the field to attempt to find a redirector for
bInitialScopeMustBeOwnerOfFieldForParentScopeRedirectIf true, and a redirect is found in a parent scope, and the targetscope of the redirect is a child scope of the parent scope that is not the initial scope or a parent of the initial scope, then the redirect will be ignored.
Returns
The remapped field, if one exists

◆ FindRemappedField() [3/3]

template<class TFieldType >
static TFieldType * FMemberReference::FindRemappedField ( UClass InitialScope,
FName  InitialName,
bool  bInitialScopeMustBeOwnerOfFieldForParentScopeRedirect = false 
)
inlinestatic

Templated version of above, extracts FieldClass and Casts result

◆ GetMemberGuid()

FGuid FMemberReference::GetMemberGuid ( ) const
inline

◆ GetMemberName()

FName FMemberReference::GetMemberName ( ) const
inline

Get the name of this member

◆ GetMemberParentClass() [1/2]

UClass * FMemberReference::GetMemberParentClass ( ) const
inline

◆ GetMemberParentClass() [2/2]

UClass * FMemberReference::GetMemberParentClass ( UClass SelfScope) const
inline

Get the class that owns this member

◆ GetMemberParentPackage()

UPackage * FMemberReference::GetMemberParentPackage ( ) const
inline

◆ GetMemberScope()

UStruct * FMemberReference::GetMemberScope ( UClass InMemberParentClass) const
inline

Get the scope of this member

◆ GetMemberScopeName()

FString FMemberReference::GetMemberScopeName ( ) const
inline

Get the name of the scope of this member

◆ GetScope()

UClass * FMemberReference::GetScope ( UClass SelfScope = nullptr) const
inline

Returns the scope for the current member. This will vary based on whether or not this member uses the self context or not.

◆ InvalidateScope()

void FMemberReference::InvalidateScope ( )

Invalidate the current MemberParent, if this is a self scope, or the MemberScope if it is not (and set). Intended for PostDuplication fixups

◆ IsDeprecated()

bool FMemberReference::IsDeprecated ( ) const
inline

Returns whether or not the variable has been deprecated

◆ IsLocalScope()

bool FMemberReference::IsLocalScope ( ) const
inline

Returns if this is a local scope.

◆ IsSameReference()

bool FMemberReference::IsSameReference ( const FMemberReference InReference) const
inline

Compares with another MemberReference to see if they are identical

◆ IsSelfContext()

bool FMemberReference::IsSelfContext ( ) const
inline

Returns if this is a 'self' context.

◆ IsSparseClassData()

bool FMemberReference::IsSparseClassData ( const UClass OwningClass) const

Returns true if this is in the sparse data struct for OwningClass

◆ ResolveMember() [1/3]

template<class TFieldType >
TFieldType * FMemberReference::ResolveMember ( UBlueprint SelfScope)
inline

ResolveMember overload for UBlueprint, uses the skeleton class so it can be more up to date

◆ ResolveMember() [2/3]

template<>
UFunction * FMemberReference::ResolveMember ( UClass SelfScope,
const bool  bAlwaysFollowRedirects 
) const
inline

◆ ResolveMember() [3/3]

template<class TFieldType >
TFieldType * FMemberReference::ResolveMember ( UClass SelfScope = nullptr,
const bool  bAlwaysFollowRedirects = false 
) const
inline

Returns the member FProperty/UFunction this reference is pointing to, or NULL if it no longer exists Derives 'self' scope from supplied Blueprint node if required Will check for redirects and fix itself up if one is found (when WITH_EDITOR, or when bAlwaysFollowRedirects is true).

◆ ResolveMemberFunction()

UFunction * FMemberReference::ResolveMemberFunction ( UClass SelfScope,
const bool  bAlwaysFollowRedirects 
) const

◆ ResolveMemberImpl()

template<class TFieldType , class TFieldTypeClass >
TFieldType * FMemberReference::ResolveMemberImpl ( UClass SelfScope,
TFieldTypeClass FieldClas,
const bool  bAlwaysFollowRedirects,
const bool  bIsUFunctionOrMulticastDelegate 
) const

◆ ResolveMemberProperty()

FProperty * FMemberReference::ResolveMemberProperty ( UClass SelfScope,
const bool  bAlwaysFollowRedirects,
FFieldClass FieldClass 
) const

◆ ResolveSimpleMemberReference()

template<class TFieldType >
static TFieldType * FMemberReference::ResolveSimpleMemberReference ( const FSimpleMemberReference Reference,
UClass SelfScope = nullptr 
)
inlinestatic

◆ SetDirect()

void FMemberReference::SetDirect ( const FName  InMemberName,
const FGuid  InMemberGuid,
TSubclassOf< class UObject InMemberParentClass,
bool  bIsConsideredSelfContext 
)

Only intended for backwards compat!

◆ SetExternalDelegateMember()

void FMemberReference::SetExternalDelegateMember ( FName  InMemberName)

Set to a non-'self' delegate member, this is not self-context but is not given a parent class

◆ SetExternalMember() [1/2]

void FMemberReference::SetExternalMember ( FName  InMemberName,
TSubclassOf< class UObject InMemberParentClass 
)

Set to a non-'self' member, so must include reference to class owning the member.

◆ SetExternalMember() [2/2]

void FMemberReference::SetExternalMember ( FName  InMemberName,
TSubclassOf< class UObject InMemberParentClass,
const FGuid InMemberGuid 
)

◆ SetFromField()

template<class TFieldType >
void FMemberReference::SetFromField ( const typename TFieldType::BaseFieldClass *  InField,
const bool  bIsConsideredSelfContext,
UClass OwnerClass = nullptr 
)
inline

Set up this reference from a supplied field

◆ SetGlobalField()

void FMemberReference::SetGlobalField ( FName  InFieldName,
UPackage InParentPackage 
)

Set to reference a global field (intended for things like natively defined delegate signatures)

◆ SetLocalMember() [1/2]

void FMemberReference::SetLocalMember ( FName  InMemberName,
FString  InScopeName,
const FGuid  InMemberGuid 
)

Set up this reference to a 'self' member name, scoped to a struct name

◆ SetLocalMember() [2/2]

void FMemberReference::SetLocalMember ( FName  InMemberName,
UStruct InScope,
const FGuid  InMemberGuid 
)

Set up this reference to a 'self' member name, scoped to a struct

◆ SetSelfMember() [1/2]

void FMemberReference::SetSelfMember ( FName  InMemberName)

Set up this reference to a 'self' member name

◆ SetSelfMember() [2/2]

void FMemberReference::SetSelfMember ( FName  InMemberName,
const FGuid InMemberGuid 
)

Member Data Documentation

◆ bSelfContext

bool FMemberReference::bSelfContext
mutableprotected

Whether or not this should be a "self" context

◆ bWasDeprecated

bool FMemberReference::bWasDeprecated
mutableprotected

Whether or not this property has been deprecated

◆ MemberGuid

FGuid FMemberReference::MemberGuid
mutableprotected

The Guid of the variable

◆ MemberName

FName FMemberReference::MemberName
mutableprotected

Name of variable

◆ MemberParent

TObjectPtr<UObject> FMemberReference::MemberParent
mutableprotected

Most often the Class that this member is defined in. Could be a UPackage if it is a native delegate signature function (declared globally). Should be NULL if bSelfContext is true.

◆ MemberScope

FString FMemberReference::MemberScope
mutableprotected

The documentation for this struct was generated from the following files: