每天学习亿点点day 5: Uobject相关类源码剖析

1. 首先理清楚大体的类结构是怎样的

 

 2. 其次我们来看一看Uobject相关联的几个类的继承结构吧

UObjectBase->UObjectBaseUtility->Uobject

首先看一下UObjectBase:

Remarks:

低层次的Uobject封装, 基本没啥用

Constructors

 NameDescription

Protected function

UObjectBase()
 
 

Protected function

UObjectBase

(
    EObjectFlags InFlags
)

用于引导的构造函数

 

Public function

UObjectBase

(
    UClass* InClass,
    EObjectFlags InFlags,
    EInternalObjectFlags InInternalFlag...,
    UObject* InOuter,
    FName InName
)

给全局StaticAllocateObject 用的用于生成一个新的object instance的构造函数

Destructors

 NameDescription

Public function Virtual

~UObjectBase()
 

析构函数用于将object从object列表中移除,以及清理内存

Functions

  NameDescription

Public function

void

 
AtomicallyClearFlags

(
    EObjectFlags FlagsToClear
)

消除某个标志位的原子操作

Public function

void

 
AtomicallySetFlags

(
    EObjectFlags FlagsToAdd
)

去添加某个标志位的

Protected function Virtual

void

 
DeferredRegister

(
    UClass* UClassStaticClass,
    const TCHAR* PackageName,
    const TCHAR* Name
)

把一个启动注册类添加到实际要实例化类,并添加到object列表里

Public function Static

void

 
EmitBaseReferences

(
    UClass* RootClass
)

Emit GC tokens for UObjectBase, this might be UObject::StaticClass or Default__Class

(不太懂啥意思,貌似是反射相关的)

Public function Const

UClass *  GetClass()
 

返回关于本class的相关信息,用于定义object的域 (里面放了多少变量函数啥的)

Public function Const

EObjectFlags

 
GetFlags()
 

直接取得object实例的标志位

Public function Const

FName

 
GetFName()
 

获得本object的逻辑名应该是自动生成的

Public function Const

UObject *...  GetOuter()
 

返回该objectbase在被哪个object使用

Public function Const

uint32

 
GetUniqueID()
 

返回本object的独特id, 当本object仍存活的时候才是独特的

Public function Const

bool

 
IsValidLowLevel()
 

检查本object是否合法

Public function Const

bool

 
IsValidLowLevelFast

(
    bool bRecursive
)

上面那个方法的加速版本

Protected function

void

 
LowLevelRename

(
    FName NewName,
    UObject* NewOuter
)

改变FName 和Outer并重新加入哈希表

Protected function

void

 
Register

(
    const TCHAR* PackageName,
    const TCHAR* Name
)

将本object的register过程加入队列

Protected function Virtual

void

 
RegisterDependencies()
 

强制任何任何baseclass最先注册

Protected function

void

 
SetFlagsTo

(
    EObjectFlags NewFlags
)

直接设置EObjectFlags

UObjectBaseUtility

Remarks

还是不要直接用, 没啥屌用

构造函数

 NameDescription

Public function

UObjectBaseUtility()
 

构造函数

Public function

UObjectBaseUtility

(
    EObjectFlags InFlags
)

 

Functions

  NameDescription

Public function

void

 
AddToCluster

(
    UObjectBaseUtility* ClusterRoo...,
    bool bAddAsMutableObject
)

将本object计入到GC (garbage collector) cluster

Public function

void

 
AddToRoot()
 

将object加入到根集合

Public function Const

void

 
AppendName

(
    FString& ResultString
)

优化版本的GetName函数, 会直接在现有的字符串后添加

Public function Const

bool

 
AtomicallyClearInternalFlags

(
    EInternalObjectFlags FlagsToClear
)

将内部状态位清楚,原子操作

Public function Virtual Const

bool

 
CanBeClusterRoot()
 

在加载之后调用决定看是否能作为GC的cluster root使用

Public function Virtual Const

bool

 
CanBeInCluster()
 

在 cluster构造函数中调用看object能否被加入到cluster

Public function

void

 
ClearFlags

(
    EObjectFlags NewFlags
)

特定object中清除掉状态子集

Public function Const

void

 
ClearInternalFlags

(
    EInternalObjectFlags FlagsToClear
)

清除掉传进的内部状态标志位

Public function

void

 
ClearPendingKill()
 

把该object从死亡线上拉回来

Public function Virtual

void

 
CreateCluster()
 

在后加载完毕后调用,来新建object的cluster

Protected function Static

void

 
CreateClusterFromObject

(
    UObjectBaseUtility* ClusterRoo...,
    UObjectBaseUtility* Referencin...
)

从一个object上创建一个clusterm,辅助函数

Public function Const

const UClass...  FindNearestCommonBaseClass

(
    const UClass* TestClass
)

找到类继承关系里最近的公共子父亲

Public function Const

EObjectMark

 
GetAllMarks()
 

返回所有标志

Public function Const

FString

 
GetFullGroupName

(
    bool bStartWithOuter
)

从包链条上回溯找到最顶层的包

Public function Const

void

 
GetFullName

(
    const UObject* StopOuter,
    FString& ResultString,
    EObjectFullNameFlags Flags
)

去除不必要复制的版本的GetFullName()

Public function Const

FString

 
GetFullName

(
    const UObject* StopOuter,
    EObjectFullNameFlags Flags
)

返回class的路径和类名:'ClassName Outermost[.Outer].Name'.

Public function

void *  GetInterfaceAddress

(
    UClass* InterfaceClass
)

安全返回一个指向该object并转换为特定interface类的指针

Public function Const

EInternalObj...  GetInternalFlags()
 

获得内部标志

Public function Const

FLinkerLoad ...  GetLinker()
 

获得本object的linker

Public function Const

int32

 
GetLinkerCustomVersion

(
    FGuid CustomVersionKey
)

Returns the custom version of the linker for this object corresponding to the given custom version key.

定制版本的获得某定制key下的object linker

Public function Const

int32

 
GetLinkerIndex()
 

获得object的linker index

Public function Const

int32

 
GetLinkerLicenseeUE4Version()
 

返回该object的许可证 版本linker

Public function Const

int32

 
GetLinkerUE4Version()
 

返回该object的ue4版本linker

Public function Const

EObjectFlags

 
GetMaskedFlags

(
    EObjectFlags Mask
)

返回object里同时在mask并且被设置了的flag

Public function Const

FString

 
GetName()
 

返回该object的名字,不带路径信息

Public function Const

void

 
GetName

(
    FString& ResultString
)

优化版本的GetName

 

Public function

void *  GetNativeInterfaceAddress

(
    UClass* InterfaceClass
)

获得本object实现了的原interface的地址

Public function Const

const void &...  GetNativeInterfaceAddress

(
    UClass* InterfaceClass
)

获得本object实现了的原常量interface的地址

Public function Const

UPackage ...  GetOutermost()
 

找到最顶层的outer (谁拥有本object)

Public function Const

FString

 
GetPathName

(
    const UObject* StopOuter
)

Returns the fully qualified pathname for this object, in the format: 'Outermost[.Outer].Name'

Public function Const

void

 
GetPathName

(
    const UObject* StopOuter,
    FString& ResultString
)

Version of GetPathName() that eliminates unnecessary copies.

Public function Const

TStatId

 
GetStatID

(
    bool bForDeferredUse
)

返回本object的stat id有就返回,无就创造然后返回

Public function Const

UObject *...  GetTypedOuter

(
    UClass* Target
)

沿着outer链条回溯然后找特定的

Public function Const

T *  GetTypedOuter()
 

Traverses the outer chain searching for the next object of a certain type.

Public function Const

bool

 
HasAllFlags

(
    EObjectFlags FlagsToCheck
)

检查传入进来的flags是否已经被设置

Public function Const

bool

 
HasAllMarks

(
    EObjectMark Marks
)

检查是否有特定的mask

Public function Const

bool

 
HasAnyFlags

(
    EObjectFlags FlagsToCheck
)

是否有特定的flag

Public function Const

bool

 
HasAnyInternalFlags

(
    EInternalObjectFlags FlagsToCheck
)

Used to safely check whether any of the passed in internal flags are set.

Public function Const

bool

 
HasAnyMarks

(
    EObjectMark Marks
)

Tests an object for having ANY of a set of marks

Public function Const

bool

 
IsA

(
    OtherClassType SomeBase
)

是否为某类

Public function Const

bool

 
IsA()
 

检查是否为模板类

Public function Const

bool

 
IsDefaultSubobject()
 

检查是否是一个模板实例化的例子或者是否是一个模板

Public function Const

bool

 
IsIn

(
    const UObject* SomeOuter
)

看该object是否是在本object chain上

Public function Const

bool

 
IsInA

(
    const UClass* SomeBaseClass
)

是否有一个outer是某种类型

Public function Const

bool

 
IsNative()
 

是否是native的

Public function Const

bool

 
IsPendingKill()
 

Checks the PendingKill flag to see if it is dead but memory still valid

Public function Const

bool

 
IsPendingKillOrUnreachable()
 

Checks if the object is pending kill or unreachable.

Public function Const

bool

 
IsRooted()
 

是否被rooted了

Public function Const

bool

 
IsTemplate

(
    EObjectFlags TemplateTypes
)

决定本object是否是模板object

Public function Const

bool

 
IsUnreachable()
 

是否是无法到达

Public function Const

void

 
Mark

(
    EObjectMark Marks
)

给object添加mark

Public function Const

bool

 
MarkPackageDirty()
 

找到最外层的包并污染它

Public function

void

 
MarkPendingKill()
 

标记为pendingkill

Public function Virtual

void

 
OnClusterMarkedAsPendingKill()
 

cluster被标记要被杀死的时候对于本object要调用的函数

Public function

void

 
RemoveFromRoot()
 

从根集里移除

Public function Const

bool

 
RootPackageHasAnyFlags

(
    uint32 CheckFlagMask
)

跟包里是否有任何flag

Public function

void

 
SetFlags

(
    EObjectFlags NewFlags
)

设置某标志位

Public function Const

void

 
SetInternalFlags

(
    EInternalObjectFlags FlagsToSet
)

清除传入的内部标志位

Public function

bool

 
ThisThreadAtomicallyClearedRFUnreachable()
 

清除无法达到标志位, 原子操作

Public function Const

void

 
UnMark

(
    EObjectMark Marks
)

移除掉各种mask

Operators

  NameDescription

Public function Const

bool

 
operator<

(
    const UObjectBaseUtility& Other
)

重载<符号,比较两个object的name

 

最后是 UObject:

Remarks

UE4 所有object的父类, object的类型由其UClass定义. object提供新建object和使用object的辅助性函数,以及需要被子类覆盖的虚函数

Constructors

 NameDescription

Public function

UObject()
 

Default constructor

Public function

UObject

(
    const FObjectInitializer& ObjectIn...
)

已经弃用的构造函数, objectintializer已经不再使用, 但还是位老的类提供支持

Public function

UObject

(
    FVTableHelper& Helper
)

不要使用,仅仅是给内部热加载使用的

Public function

UObject

(
    EStaticConstructor,
    EObjectFlags InFlags
)

不要使用, 此构造函数仅仅是给内部使用的静态创建object方法

Functions

  NameDescription

Public function Static

void

 
__DefaultConstructor

(
    const FObjectInitializer& X
)

 默认构造函数

Public function Static

UObject *...  __VTableCtorCaller

(
    FVTableHelper& Helper
)

 创建虚函数列表的

Public function Const

void

 
AbortInsideMemberFunction()
 

在调用堆栈的顶部使用成员函数调用时放弃,这有助于确保大多数平台将该对象的内存填充到产生的最小转储中。

Public function Static

void

 
AddReferencedObjects

(
    UObject* InThis,
    FReferenceCollector& Collector
)

用于允许对象注册尚未被令牌流覆盖的直接对象引用的回调。

Public function Virtual Const

bool

 
AreNativePropertiesIdenticalTo

(
    UObject* Other
)

原始属性是否是和传入的object一样

Public function Virtual

void

 
BeginCacheForCookedPlatformData

(
    const ITargetPlatform* TargetP...
)

开始为目标平台缓存特定于平台的数据,在序列化之前进行cooking时调用,以便对象可以准备特定于平台的数据,在普通加载object的时候不得调用

Public function Virtual

void

 
BeginDestroy()
 

在摧毁actor之前进行调用

Public function Virtual Const

void

 
BuildSubobjectMapping

(
    UObject* OtherObject,
    TMapUObject*, UObject* ...
)

给定OtherObject(它将与'this'相同类型),递归地从'this'中找到任何匹配的子对象,也存在于OtherObject中,并将映射添加到ObjectMapping。

Public function

void

 
CallAddReferencedObjects

(
    FReferenceCollector& Collector
)

将本object加入到本class里实例引用列表中

Public function

void

 
CallFunction

(
    FFrame& Stack,
    void*const Z_Param__Result,
    UFunction* Function
)

内部用于执行函数的虚拟机方法

Public function

bool

 
CallFunctionByNameWithArguments

(
    const TCHAR* Cmd,
    FOutputDevice& Ar,
    UObject* Executor,
    bool bForceCallWithNonExec
)

从控制台和命令行执行函数的时候通过函数名处理

Public function Virtual

bool

 
CallRemoteFunction

(
    UFunction* Function,
    void* Parms,
    FOutParmRec* OutParms,
    FFrame* Stack
)

远程调用函数

Protected function Const

bool

 
CanCheckDefaultSubObjects

(
    bool bForceCheck,
    bool& bResult
)

检查此时刻是否能检查子object

Public function Static

bool

 
CanCreateInCurrentContext

(
    UObject* Template
)

检查当前上下文情况下能否新建特定模板的实例

Public function Virtual Const

bool

 
CanEditChange

(
    const FProperty* InProperty
)

由editor调用是否能修改某属性

Public function Const

bool

 
CanModify()
 

用于覆盖不安全的modify如果此时返回无法modify

Public function Const

bool

 
CheckDefaultSubobjects

(
    bool bForceCheck
)

检查当下子object

Protected function Virtual Const

bool

 
CheckDefaultSubobjectsInternal()
 

检查内部子object

Public function Virtual

void

 
ClearAllCachedCookedPlatformData()
 

清除所有platform cached data

Public function Virtual

void

 
ClearCachedCookedPlatformData

(
    const ITargetPlatform* TargetP...
)

清除特定platform cached data

Public function Const

void

 
CollectDefaultSubobjects

(
    TArrayUObject* >& OutDefaul...,
    bool bIncludeNestedSubobjects
)

建造一个list里面包含所有以本object为outer的component

Public function

bool

 
ConditionalBeginDestroy()
 

摧毁object之前调用

Public function

bool

 
ConditionalFinishDestroy()
 

object已经实际被摧毁的时候调用,内存禁止再访问

Public function

void

 
ConditionalPostLoad()
 

如果需要就要执行的后加载

Public function

void

 
ConditionalPostLoadSubobjects

(
    FObjectInstancingGraph* OuterI...
)

加载子object实例和components如果有这个需要

Public function

void

 
CookAdditionalFiles

(
    const TCHAR* PackageFilename,
    const ITargetPlatform* TargetP...,
    TFunctionRefvoid*...
)

在cook阶段调用,允许objects去生成cooked package之外的cooked 文件

Public function Const

TSharedPtr< ...  CreateAndRestoreTransactionAnnotation

(
    FArchive& Ar
)

使用应用事务所需的任何外部数据创建和恢复以前序列化的注释对象

Public function

UObject *...  CreateDefaultSubobject

(
    FName SubobjectFName,
    UClass* ReturnType,
    UClass* ClassToCreateByDefault,
    bool bIsRequired,
    bool bIsTransient
)

下面模板的实用函数

Public function

TReturnType ...  CreateDefaultSubobject

(
    FName SubobjectName,
    bool bTransient
)

创建一个组件或子对象,允许创建一个子类并返回父类。

Public function

TReturnType ...  CreateDefaultSubobject

(
    FName SubobjectName,
    bool bTransient
)

创建组件或子对象

Public function

TReturnType ...  CreateEditorOnlyDefaultSubobject

(
    FName SubobjectName,
    bool bTransient
)

创建只与编辑器一起使用的组件或子对象

Public function

TReturnType ...  CreateOptionalDefaultSubobject

(
    FName SubobjectName,
    bool bTransient
)

创建可选组件或子对象

Public function

void

 
DestroyNonNativeProperties()
 

销毁不会被原生析构函数销毁的属性

Public function

void

 
ExecuteUbergraph

(
    int32 EntryPoint
)

从特定的入口点执行ubergraph

Public function Virtual

void

 
ExportCustomProperties

(
    FOutputDevice& Out,
    uint32 Indent
)

将指定对象的属性值作为文本导出到输出设备

Protected function Virtual Const

TSharedPtr< ...  FactoryTransactionAnnotation

(
    const ETransactionAnnotationCreatio...
)

 

Public function Const

UFunction &#...  FindFunction

(
    FName InName
)

返回一个具有指定名称的UFunction, UClass::FindFunctionByName()

Public function Const

UFunction &#...  FindFunctionChecked

(
    FName InName
)

FindFunction()的版本,它将在没有找到函数时进行断言

Public function Const

TSharedPtr< ...  FindOrCreateTransactionAnnotation()
 

使用应用事务所需的任何外部数据查找或创建并填充注释对象

Public function Virtual

void

 
FinishDestroy()
 


调用以完成销毁对象

Public function Const

UObject *...  GetArchetype()
 

返回该对象所基于的模板

Public function Static

UObject *...  GetArchetypeFromRequiredInfo

(
    const UClass* Class,
    const UObject* Outer,
    FName Name,
    EObjectFlags ObjectFlags
)

返回具有这个类、外部和名称的对象的模板

Public function

void

 
GetArchetypeInstances

(
    TArrayUObject* >& Instances
)

构建在其原型链中具有此对象的对象列表。

Public function Virtual Const

void

 
GetAssetRegistryTagMetadata

(
    TMapFNameFAssetRegistryTagMetad...
)

收集资产注册标签元数据的集合

Public function Virtual Const

void

 
GetAssetRegistryTags

(
    TArrayFAssetRegistryTag >& OutTa...
)

收集一个资产注册表的可搜索标签列表,这些标签是带有一些类型信息的名称/值对

Public function Virtual Const

const TCHAR ...  GetConfigOverridePlatform()
 

返回覆盖的配置层次结构平台(如果NDAd平台需要默认值不在Base*.ini中,但仍然希望编辑器加载它们)

Public function Const

FString

 
GetDefaultConfigFilename()
 

获取指定UObject的默认配置文件名

Public function

UObject *...  GetDefaultSubobjectByName

(
    FName ToFind
)

根据其名称找到与此对象实例关联的子对象

Public function

void

 
GetDefaultSubobjects

(
    TArrayUObject* >& OutDefaul...
)

获取与此对象实例关联的所有默认子对象

Public function Virtual

FString

 
GetDesc()
 

返回用于在通用浏览器的缩略图视图中查看的对象的一行描述

Public function Const

FString

 
GetDetailedInfo()
 

这将返回关于这个特定对象的详细信息

Protected function Virtual Const

FString

 
GetDetailedInfoInternal()
 

这个函数实际上为GetDetailedInfo()执行工作,并且是虚函数

Public function Virtual

FName

 
GetExporterName()
 

返回用于导出此对象的导出工厂的名称。当多个工厂具有相同的扩展名时使用

Public function Virtual

int32

 
GetFunctionCallspace

(
    UFunction* Function,
    FFrame* Stack
)

返回这个函数应该被调用的空间

Public function Const

FString

 
GetGlobalUserConfigFilename()
 

获取指定UObject的全局用户覆盖配置文件名

Public function Virtual Const

void

 
GetLifetimeReplicatedProps

(
    TArray< class FLifetimeProperty >&...
)

返回在参与者通道的生命周期内复制的属性

Public function Static

TSetFName ...  GetMetaDataTagsForAssetRegistry()
 

从UMetaData转移到资产注册表的元数据标签

Public function Virtual Const

bool

 
GetNativePropertyValues

(
    TMapFStringFString >& out_Prop...,
    uint32 ExportFlags
)

用于检索本机序列化属性的文本表示的回调

Public function Virtual

void

 
GetPreloadDependencies

(
    TArrayUObject* >& OutDeps
)

Called during cooking.

Public function Virtual

void

 
GetPrestreamPackages

(
    TArrayUObject* >& OutPrestr...
)

Called during cooking.

Public function Virtual Const

FPrimaryAsse...  GetPrimaryAssetId()
 

返回一个类型:名称对,表示该对象的PrimaryAssetId

Public function

SIZE_T

 
GetResourceSizeBytes

(
    EResourceSizeMode::Type Mode
)

这是一个简单的版本,它只返回这个对象使用的总字节数

Public function Virtual

void

 
GetResourceSizeEx

(
    FResourceSizeEx& CumulativeResourc...
)

这是一个扩展版本,它将使用的内存分割成不同的内存区域(其实际定义可能是特定于平台的)

Public function Virtual

FRestoreForU...  GetRestoreForUObjectOverwrite()
 

在覆盖现有对象的情况下,保存StaticAllocateObject的信息

Public function Virtual Const

UScriptStruc...  GetSparseClassDataStruct()
 

返回对应于sidecar数据结构的UStruct,该数据结构存储了该类所有实例的常量数据

Public function Virtual

void

 
GetSubobjectsWithStableNamesForNetworking

(
    TArrayUObject* >& ObjList
)

返回具有用于联网的稳定名称的子对象列表

Public function Const

bool

 
Implements()
 

如果该对象实现了接口T,则返回true,否则返回false

Public function Virtual

void

 
ImportCustomProperties

(
    const TCHAR* SourceText,
    FFeedbackContext* Warn
)

将指定对象的属性值作为文本导出到输出设备

Public function

void

 
InstanceSubobjectTemplates

(
    FObjectInstancingGraph* Instan...
)

为这个对象调用UClass::InstanceSubobjectTemplates()的包装器

Public function Virtual Const

bool

 
IsAsset()
 

如果该对象被视为资产,则返回true

Public function Const

bool

 
IsBasedOnArchetype

(
    const UObject*const SomeObject
)

确定该对象的原型链中是否有SomeObject

Public function Virtual

bool

 
IsCachedCookedPlatformDataLoaded

(
    const ITargetPlatform* TargetP...
)

我们是否已经完成了在BeginCacheForCookedPlatformData中请求的目标平台的所有熟化平台数据的加载

Public function Virtual

EDataValidat...  IsDataValid

(
    TArrayFText >& ValidationErrors
)

 

Public function Virtual Const

bool

 
IsDestructionThreadSafe()
 

在垃圾收集期间调用,以确定对象是否可以在工作线程上调用其析构函数。

Public function Virtual Const

bool

 
IsEditorOnly()
 

在保存期间调用,以确定对象是否强制仅为编辑器

Public function Virtual Const

bool

 
IsFullNameStableForNetworking()
 

IsFullNameStableForNetworking表示可以通过网络引用对象的完整路径名

Public function Const

bool

 
IsInBlueprint()
 

返回此对象是包含在蓝图对象中还是其一部分

Public function Virtual Const

bool

 
IsLocalizedResource()
 

如果该对象被认为是本地化资源,则返回true

Public function Virtual Const

bool

 
IsNameStableForNetworking()
 

IsNameStableForNetworking意味着可以通过网络引用对象的路径名(相对于外部)

Public function Virtual Const

bool

 
IsPostLoadThreadSafe()
 

在异步加载期间调用,以确定是否可以在加载线程上调用PostLoad

Public function Virtual Const

bool

 
IsReadyForAsyncPostLoad()
 

在FAsyncPackage::PostLoadObjects()中调用PostLoad()之前调用

Public function Virtual

bool

 
IsReadyForFinishDestroy()
 

调用来检查对象是否准备好完成销毁

Public function Virtual Const

bool

 
IsSafeForRootSet()
 

如果该对象可以安全添加到根集,则返回true

Public function Const

bool

 
IsSelected()
 

测试UObject的选择状态

Public function Virtual Const

bool

 
IsSupportedForNetworking()
 

IsSupportedForNetworking意味着一个对象可以在网络上被引用

Public function

void

 
LoadConfig

(
    UClass* ConfigClass,
    const TCHAR* Filename,
    uint32 PropagationFlags,
    FProperty* PropertyToLoad
)

从.ini文件中导入属性值

Public function Virtual

void

 
LoadedFromAnotherClass

(
    const FName& OldClassName
)

当对象通过活动类重定向从另一个类加载时调用.

Public function Virtual

void

 
MarkAsEditorOnlySubobject()
 

在创建子对象期间调用,将此组件标记为仅为编辑器,这会导致它在打包构建中被剥离

Public function Virtual

bool

 
Modify

(
    bool bAlwaysMarkDirty
)

提示该object会被modified

Public function Virtual Const

void

 
MoveDataToSparseClassDataStruct()
 
 

Public function Virtual Const

bool

 
NeedsLoadForClient()
 

在保存期间调用,以确定要与对象一起保存的加载标志

Public function Virtual Const

bool

 
NeedsLoadForEditorGame()
 

在保存期间调用,以在编辑器构建中运行的客户机/服务器中包含此对象,即使它们通常不会

Public function Virtual Const

bool

 
NeedsLoadForServer()
 

在保存期间调用,以确定要与对象一起保存的加载标志

Public function Virtual Const

bool

 
NeedsLoadForTargetPlatform

(
    const ITargetPlatform* TargetP...
)

在保存期间调用,以确定要与对象一起保存的加载标志

Public function

void

 
OutputReferencers

(
    FOutputDevice& Ar,
    FReferencerInformationList* Re...
)

将字符串输出到任意输出设备,描述保存对该设备的引用的对象列表

Public function Virtual

void

 
OverridePerObjectConfigSection

(
    FString& SectionName
)

允许PerObjectConfig类,以覆盖用于PerObjectConfig对象的ini节名称

Public function

void

 
ParseParms

(
    const TCHAR* Parms
)

从文件中导入对象

Public function Virtual

void

 
PostCDOContruct()
 

在类的CDO上运行c++构造函数后调用

Public function Virtual

void

 
PostDuplicate

(
    EDuplicateMode::Type DuplicateMode
)

 

Public function Virtual

void

 
PostDuplicate

(
    bool bDuplicateForPIE
)

在复制和序列化之后和PostLoad之前调用

Public function

void

 
PostEditChange()
 

Intentionally non-virtual as it calls the FPropertyChangedEvent version

Public function Virtual

void

 
PostEditChangeChainProperty

(
    FPropertyChangedChainEvent& Proper...
)

当修改结构内部的属性时,会调用这个PostEditChange的替代版本

Public function Virtual

void

 
PostEditChangeProperty

(
    FPropertyChangedEvent& PropertyCha...
)

当此对象上的属性被外部修改时调用

Public function Virtual

void

 
PostEditImport()
 

允许对象对不应该被复制或脚本序列化不支持的属性执行任何清理

Public function Virtual

void

 
PostEditUndo()
 

将事务应用于对象后调用

Public function Virtual

void

 
PostEditUndo

在提供事务注释的情况下,将事务应用到对象后调用

Public function Virtual

void

 
PostInitProperties()
 

在c++构造函数和初始化属性(包括从config加载的属性)之后调用

Public function Virtual

void

 
PostInterpChange

(
    FProperty* PropertyThatChanged
)

当属性被InterpPropertyTracks修改时,将调用此函数

Public function Virtual

void

 
PostLinkerChange()
 

在响应链接器更改时调用,这只能发生在编辑器中

Public function Virtual

void

 
PostLoad()
 

在加载对象后立即执行任何特定于对象的清理

Public function Virtual

void

 
PostLoadSubobjects

(
    FObjectInstancingGraph* OuterI...
)

如果需要,从磁盘加载对象的实例组件

Public function Virtual

void

 
PostNetReceive()
 

收到网络信息之后就调用

Public function Virtual

void

 
PostReloadConfig

(
    FProperty* PropertyThatWasLoad...
)

在对象重新加载其配置数据后从ReloadConfig调用

Public function Virtual

void

 
PostRename

(
    UObject* OldOuter,
    const FName OldName
)

在Rename()结束时调用,但仅在实际执行重命名时调用

Public function Virtual

void

 
PostRepNotifies()
 

在调用所有OnRep通知后立即调用(即使没有通知也会调用)

Public function Virtual

void

 
PostSaveRoot

(
    bool bCleanupIsRequired
)

在传入的base/root对象上从SavePackage内部调用

Public function Virtual

void

 
PostTransacted

(
    const FTransactionObjectEvent& Tra...
)

在以某种方式处理对象后调用

Public function Virtual

void

 
PreDestroyFromReplication()
 

在因为网络复制而被标记为破坏之前调用

Public function Virtual

void

 
PreEditChange

(
    FEditPropertyChain& PropertyAboutT...
)

当修改结构内部的属性时,会调用这个PreEditChange的替代版本

Public function Virtual

void

 
PreEditChange

(
    FProperty* PropertyAboutToChan...
)

当要从外部修改属性时,将调用此函数

Public function Virtual

void

 
PreEditUndo()
 

在将事务应用于对象之前调用

Public function Virtual

void

 
PreNetReceive()
 

收到信息之前调用

Public function Virtual

void

 
PreSave

(
    const ITargetPlatform* TargetP...
)

预存档函数

Public function Virtual

bool

 
PreSaveRoot

(
    const TCHAR* Filename
)

在传入的base/root对象上从SavePackage内部调用

Public function Virtual

bool

 
ProcessConsoleExec

(
    const TCHAR* Cmd,
    FOutputDevice& Ar,
    UObject* Executor
)

这个函数处理发送给对象的console exec;它是虚拟的,所以像玩家控制器这样的“联结”对象可以将命令重新路由到多个不同的对象

Public function Virtual

void

 
ProcessEvent

(
    UFunction* Function,
    void* Parms
)

由VM调用,以执行一个UFunction,其中填充了参数UStruct

Public function

void

 
ProcessInternal

(
    FFrame& Stack,
    void* Result
)

内部函数调用处理

Public function

void

 
PropagatePostEditChange

(
    TArrayUObject* >& AffectedO...,
    FPropertyChangedChainEvent& Proper...
)

基于AffectedObjects中的原型对所有实例调用PostEditChange

Public function

void

 
PropagatePreEditChange

(
    TArrayUObject* >& AffectedO...,
    FEditPropertyChain& PropertyAboutT...
)

基于AffectedObjects中的原型对所有实例调用PreEditChange

Public function Virtual

UClass *  RegenerateClass

(
    UClass* ClassToRegenerate,
    UObject* PreviousCDO
)

当装载ClassGeneratedBy时,在目标上调用

Public function

void

 
ReinitializeProperties

(
    UObject* SourceObject,
    FObjectInstancingGraph* Instan...
)

InitProperties()的包装器函数,它在从指定的源对象重新初始化该对象之前安全地销毁该对象

Public function

void

 
ReloadConfig

(
    UClass* ConfigClass,
    const TCHAR* Filename,
    uint32 PropagationFlags,
    FProperty* PropertyToLoad
)

LoadConfig的包装器方法,用于在运行时重新加载配置数据的对象,这些对象至少已经加载了一次配置数据。

Public function Virtual

bool

 
Rename

(
    const TCHAR* NewName,
    UObject* NewOuter,
    ERenameFlags Flags
)

将此对象重命名为唯一名称,或更改其外部

Public function

void

 
RetrieveReferencers

(
    TArrayFReferencerInformation >&#...,
    TArrayFReferencerInformation >&#...
)

由OutputReferencers()调用,以获得要编写的引用器的内部列表

Public function

void

 
SaveConfig

(
    uint64 Flags,
    const TCHAR* Filename,
    FConfigCacheIni* Config
)

将配置保存到ini文件中,调用类默认对象必须是安全的

Public function Virtual

void

 
Serialize

(
    FArchive& Ar
)

使用FArchive处理读取、写入和引用收集

Public function Virtual

void

 
Serialize

(
    FStructuredArchive::FRecord Record
)

使用FArchive处理读取、写入和引用收集

Public function Const

void

 
SerializeScriptProperties

(
    FArchive& Ar
)

序列化位于data中的脚本属性数据

Public function Const

void

 
SerializeScriptProperties

(
    FStructuredArchive::FSlot Slot
)

序列化位于data中的脚本属性数据.

Public function

void

 
SetLinker

(
    FLinkerLoad* LinkerLoad,
    int32 LinkerIndex,
    bool bShouldDetachExisting
)

将链接器和链接器索引更改为传入的一个.

Public function Virtual

void

 
ShutdownAfterError()
 

在出现重大错误后,执行任何关键任务的清理,如恢复视频模式或释放硬件资源

Public function

void

 
SkipFunction

(
    FFrame& Stack,
    void*const Z_Param__Result,
    UFunction* Function
)

advanced Stack的代码将参数传递给给定函数,如果函数有返回值,将该属性的0值复制到内存中作为返回值

Public function Static

const FName ...  SourceFileTagName()
 

获取用于所有资源源文件导入路径的通用标记名

Public function Static

UClass *  StaticClass()
 

在运行时返回表示该类的UClass对象

Public function Static

EClassCastFl...  StaticClassCastFlags()
 

返回该类的静态类型转换标志

Public function Static

const TCHAR ...  StaticConfigName()
 
 

Public function Static

const TCHAR ...  StaticPackage()
 

返回该类所属的包

Public function Static

void

 
StaticRegisterNativesUObject()
 
 

Public function Virtual

void

 
TagSubobjects

(
    EObjectFlags NewFlags
)

使用指定的对象标志标记属于同一资产的对象,用于GC检查

Public function Static

void

 
UpdateClassesExcludedFromDedicatedClient

(
    const TArrayFString >& InClassNa...,
    const TArrayFString >& InModules...
)

更新我们应该从专用客户端构建中排除的类列表

Public function Static

void

 
UpdateClassesExcludedFromDedicatedServer

(
    const TArrayFString >& InClassNa...,
    const TArrayFString >& InModules...
)

更新我们应该从专用服务器构建中排除的类列表

Public function

void

 
UpdateDefaultConfigFile

(
    const FString& SpecificFileLocatio...
)

将这个类的部分保存到这个类的默认ini文件中(只有从基类开始的更改)

Public function

void

 
UpdateGlobalUserConfigFile()
 

将这个类的部分保存到这个类的全局用户ini文件中(只有从基类开始的更改)

Public function

void

 
UpdateSinglePropertyInConfigFile

(
    const FProperty* InProperty,
    const FString& InConfigIniName
)

将属性保存到类的全局用户ini文件中(仅从基类进行更改)

Public function Virtual Const

void

 
ValidateGeneratedRepEnums

(
    const TArray< struct FRepRecord >&...
)

 

Public function Virtual

void

 
WillNeverCacheCookedPlatformDataAgain()
 

该对象的所有缓存已经完成(所有平台的IsCachedCookedPlatformDataLoaded函数已经完成)

Operators

  NameDescription

Public function

void *  operator new

(
    const size_t InSize,
    EInternal InInternalOnly,
    UObject* InOuter,
    FName InName,
    EObjectFlags InSetFlags
)

只供内部使用;使用StaticConstructObject()创建新对象

Public function

void *  operator new

(
    const size_t InSize,
    EInternal* InMem
)

只供内部使用;使用StaticConstructObject()创建新对象

Classes

 

Name

Description

Public struct

FAssetRegistryTag

GetAssetRegistryTags()用来返回标签信息的结构

Public struct

FAssetRegistryTagMetadata

与编辑器使用的资产注册标记有关的其他数据

Public struct

Object_eventExecuteUbergraph_Parms

包装器结构将入口点保存在正确的内存地址中

Enums

 

Name

Description

Public enum

ENetFields_Private

 

Protected enum

ETransactionAnnotationCreationMode

工厂一个新的注释对象,并可选地用数据填充它

Typedefs

Name

Description

Super

Typedef for the base class (UObject)

ThisClass

Typedef for UObject.

WithinClass

 

Constants

Name

Description

StaticClassFlags

Bitwise union of EClassFlags pertaining to this class.

Deprecated Functions

  NameDescription

Public function Virtual

void

 
CookAdditionalFiles

(
    const TCHAR* PackageFilename,
    const ITargetPlatform* TargetP...
)

Use the new CookAdditionalFilesOverride that provides a function to write the files

Public function

TReturnType ...  CreateAbstractDefaultSubobject

(
    FName SubobjectName,
    bool bTransient
)

CreateAbstract did not work as intended and has been deprecated in favor of CreateDefaultObject

Public function

UObject *...  CreateDefaultSubobject

(
    FName SubobjectFName,
    UClass* ReturnType,
    UClass* ClassToCreateByDefault,
    bool bIsRequired,
    bool bAbstract,
    bool bIsTransient
)

posted @ 2021-05-29 13:55  Tonarinototoro  阅读(834)  评论(0编辑  收藏  举报