
基础类型
基础类型
├── bool
├── int8, int16, int32, int64
├── uint8, uint16, uint32, uint64
└── float, double
核心字符串与名称
├── FString (动态字符串)
├── FName (哈希化标识符)
├── FText (本地化文本)
├── FStringView (字符串视图)
└── TStringBuilderBase (字符串构建器)
容器模板 (T开头)
├── TArray (动态数组)
├── TSet (集合)
├── TMap (键值映射)
├── TQueue (队列)
├── TStack (栈)
├── TLinkedList (链表)
├── TSparseArray (稀疏数组)
├── TBitArray (位数组)
└── TTuple (元组)
常用数学类型 (F开头)
├── FVector
├── FVector2D
├── FVector4
├── FRotator (旋转)
├── FQuat (四元数)
├── FTransform (位置+旋转+缩放)
├── FMatrix (4x4矩阵)
├── FBox (轴对齐包围盒)
├── FSphere (球体)
├── FPlane (平面)
├── FColor (表示颜色的基础结构体)
├── FLinearColor (线性颜色)
├── FGuid (全局唯一标识)
├── FDateTime (日期时间)
├── FTimespan (时间跨度)
└── FMath (静态数学函数)
struct FColor {
// 成员变量:四个 8-bit 通道 (0-255)
uint8 R, G, B, A;
FColor(uint8 InR, uint8 InG, uint8 InB, uint8 InA = 255)
: R(InR), G(InG), B(InB), A(InA) {}
// 预定义静态常量
static const FColor White;
static const FColor Black;
static const FColor Red;
static const FColor Green;
static const FColor Blue;
static const FColor Cyan;
static const FColor Magenta;
static const FColor Yellow;
static const FColor Transparent;
};
struct FLinearColor
{
// 成员变量:四个 32-bit 浮点通道 (0.0-1.0)
float R, G, B, A;
FLinearColor(float InR, float InG, float InB, float InA = 1.0f)
: R(InR), G(InG), B(InB), A(InA) {}
// 预定义静态常量
static const FLinearColor White;
static const FLinearColor Black;
static const FLinearColor Red;
static const FLinearColor Green;
static const FLinearColor Blue;
static const FLinearColor Gray;
static const FLinearColor Yellow;
static const FLinearColor Cyan;
static const FLinearColor Magenta;
static const FLinearColor Transparent;
};
智能指针 (T开头)
├── TSharedPtr (共享所有权)
├── TSharedRef (非空共享引用)
├── TWeakPtr (弱引用)
├── TUniquePtr (独占所有权)
└── TSharedFromThis (支持生成TSharedPtr)
委托与事件
├── 单播委托
│ ├── FDelegate (无返回值)
│ └── FRetValDelegate (有返回值)
├── 多播委托
│ └── FMulticastDelegate
├── 动态委托 (蓝图可用)
│ ├── FScriptDelegate
│ └── FMulticastScriptDelegate
└── 事件
└── FSimpleDelegate
反射与元数据辅助类型 (非UObject)
├── FProperty (属性描述基类,UE5 反射系统的核心元数据)
│ ├── 基础值类型
│ │ ├── FBoolProperty (bool, 含位域处理)
│ │ ├── FByteProperty (uint8)
│ │ ├── FIntProperty (int32)
│ │ ├── FFloatProperty (float)
│ │ ├── FDoubleProperty (double)
│ │ └── FEnumProperty (枚举属性,指向 UEnum)
│ ├── 字符串类型
│ │ ├── FStringProperty (FString)
│ │ ├── FNameProperty (FName)
│ │ └── FTextProperty (FText, 支持本地化)
│ ├── 容器类型
│ │ ├── FArrayProperty (TArray)
│ │ ├── FSetProperty (TSet)
│ │ └── FMapProperty (TMap)
│ ├── 对象引用类型
│ │ ├── FObjectProperty (指向 UObject* 的强引用)
│ │ ├── FWeakObjectProperty (指向 FWeakObjectPtr 的弱引用)
│ │ ├── FSoftObjectProperty (指向 FSoftObjectPtr 的软引用)
│ │ ├── FClassProperty (指向 UClass*,通常用于 TSubclassOf)
│ │ └── FInterfaceProperty (用于 UInterface 引用)
│ └── 结构体与委托类型
│ ├── FStructProperty (UScriptStruct 的包装,如 FVector)
│ ├── FDelegateProperty (单播委托)
│ └── FMulticastDelegateProperty (多播委托)
│
├── 底层辅助容器
│ ├── FScriptArray (TArray 的反射层)
│ ├── FScriptMap (TMap 的反射层)
│ └── FScriptSet (TSet 的反射层)
│
├── 对象指针与引用
│ ├── FWeakObjectPtr (安全弱指针,不阻止 GC)
│ ├── FSoftObjectPath (路径字符串,可异步加载)
│ └── FSoftClassPath (类路径字符串,用于 TSoftClassPtr)
│
└── 反射辅助核心
├── FObjectInitializer (对象构造时的初始化参数传递)
└── FCoreUObjectDelegates (全局 UObject 系统事件监听容器)
枚举 (E开头)
├── 反射与对象元数据 (Reflection & Object Metadata)
│ ├── EObjectFlags (定义对象GC/序列化标记,如 RF_Standalone、RF_Public)
│ ├── EFunctionFlags (定义 UFUNCTION 行为,如 BlueprintCallable、Net)
│ ├── EPropertyFlags (定义 UPROPERTY 特性,如 EditAnywhere、Replicated)
│ ├── EObjectMark (用于烘焙器排除或特殊对象标记)
│ └── EObjectStatus (定义对象当前状态的额外标记位)
│
├── 网络与多玩家 (Networking & Multiplayer)
│ ├── ENetRole (定义 Actor 网络角色:ROLE_Authority / SimulatedProxy / AutonomousProxy)
│ └── ENetMode (定义运行实例模式:Standalone / DedicatedServer / ListenServer / Client)
│
├── 游戏循环与框架 (Game Loop & Framework)
│ ├── ELevelTick (控制关卡 Tick 更新方式:仅时间 / 视口可见时)
│ ├── ETravelType (定义切换关卡的路径模式:绝对 / 相对 / 部分)
│ ├── EAsyncLoadingResult (异步加载包的回调状态:成功 / 失败 / 超时)
│ └── EEndPlayReason (指定 Actor 或 Component 结束播放/被移除的原因)
│ ├── Destroyed (对象被显式销毁时)
│ ├── LevelTransition (世界因关卡切换而被卸载时)
│ ├── EndPlayInEditor (编辑器中 PIE 会话结束时)
│ ├── RemovedFromWorld (对象所属的关卡被流送卸载时)
│ └── Quit (应用程序退出时)
│
├── 渲染与材质 (Rendering & Materials)
│ ├── EPixelFormat (定义纹理/渲染目标的像素存储格式,如 PF_FloatRGBA)
│ └── EBlendMode (定义材质混合模式:Opaque / Translucent / Additive 等)
│
├── 输入与界面 (Input & UI)
│ ├── EInputEvent (定义按键/鼠标事件的触发阶段:Pressed / Released / Repeat)
│ └── EMouseCursor (定义 Slate / UMG 游标样式:Default / TextEdit / Hand 等)
│
├── 日志与调试 (Logging & Debug)
│ ├── ELogVerbosity (定义日志输出详细级别:Error / Warning / Display / Log / Verbose)
│ ├── EAppMsgType (定义平台消息框按钮类型:Ok / YesNo / OkCancel 等)
│ └── EAppReturnType (定义消息框返回值:Yes / No / Cancel / Ok 等)
│
└── 数学与杂项 (Math & Miscellaneous)
├── EAxis (定义坐标轴枚举:X / Y / Z,用于数学库和变换)
├── ESoundGroup (定义音频压缩与缓存策略分组)
└── ...
文件、流与序列化
├── FArchive (序列化基类)
├── FBufferArchive (内存写入)
├── FMemoryReader (内存读取)
├── FMemoryWriter (内存写入)
├── FFileHandle (文件句柄)
└── FPaths (路径工具)
日志与输出
├── FOutputDevice (输出设备基类)
│ ├── FOutputDeviceConsole (控制台输出)
│ ├── FOutputDeviceFile (文件输出)
│ ├── FOutputDeviceDebug (调试器输出)
│ └── FOutputDeviceRedirector (重定向器即GLog)
└── FLogCategoryBase (日志类别基类)
异步与并发
├── FRunnable (线程接口)
├── FRunnableThread (线程)
├── FEvent (事件)
├── FGraphEventRef (任务图事件引用)
├── FTaskGraphInterface (任务图接口)
└── TFuture (异步结果)
平台抽象层 (FPlatform*)
├── FPlatformProcess (进程管理)
├── FPlatformMisc (杂项功能)
├── FPlatformMemory (内存管理)
├── FPlatformFileManager (文件管理)
├── FGenericPlatformProcess (通用进程基类)
├── FGenericPlatformMisc (通用杂项基类)
├── FGenericPlatformMemory (通用内存基类)
├── FGenericPlatformFileManager (通用文件管理基类)
├── FWindowsPlatform* (Windows实现)
├── FLinuxPlatform* (Linux实现)
├── FMacPlatform* (Mac实现)
└── FAndroidPlatform* (Android实现)
其他常用结构
├── FKey (输入按键)
├── FSlateBrush (UI画刷)
├── FAssetData (资产数据)
├── FFormatNamedArguments (格式化参数)
├── FScriptDelegate (脚本委托,已在上文委托中列出)
├── FHitResult (碰撞命中结果)
├── FStringClassReference (类引用)
└── FSoftClassPath (软类路径)
UObject类型
// UObject基类继承关系
UObjectBase (最底层,内存/GC/标志位)
└── UObjectBaseUtility (增加工具函数,如GetName/IsA)
└── UObject (对所有开发者公开的根类)
游戏框架
UObject
│
├── AActor (可放入游戏世界的对象基类,支持三维变换)
│ │
│ ├── APawn (可被“控制”的化身,代表玩家或AI的实体)
│ │ └── ACharacter (人形角色,内置胶囊体碰撞和移动组件)
│ │
│ ├── AController (非实体的逻辑大脑,控制Pawn的行为)
│ │ ├── APlayerController (接收真实玩家的输入,管理UI和HUD)
│ │ └── AAIController (驱动AI决策,通常运行行为树)
│ │
│ ├── AGameModeBase (定义游戏核心规则:胜利条件、玩家出生等,仅服务器端)
│ │ └── AGameMode (更具体的游戏模式实现)
│ │
│ ├── AGameStateBase (存储所有客户端同步的全局游戏状态,如比分、游戏时长)
│ │ └── AGameState (更具体的游戏状态实现)
│ │
│ ├── APlayerState (存储单个玩家的动态数据:名字、得分、击杀数等)
│ │
│ ├── AStaticMeshActor (用于在场景中放置一个静态网格物体)
│ │
│ ├── ACameraActor (可在场景中放置的相机,用于切换视角)
│ │
│ ├── ALight (所有光源的基类)
│ │ ├── ADirectionalLight (模拟太阳的平行光)
│ │ ├── APointLight (从一点向四周发出的点光源)
│ │ └── ASpotLight (圆锥形照射范围的聚光源)
│ │
│ ├── ATriggerBase (触发器的基类,用于重叠事件)
│ │ ├── ATriggerBox (盒形触发器)
│ │ ├── ATriggerCapsule (胶囊形触发器)
│ │ └── ATriggerSphere (球形触发器)
│ │
│ └── APlayerStart (标记玩家在关卡中的出生位置)
UObject
│
├── UActorComponent (功能模块,附加到Actor上以提供特定行为)
│ │
│ ├── USceneComponent (具有空间变换(位置/旋转/缩放)的组件基类)
│ │ │
│ │ ├── UPrimitiveComponent (具有图形表示或碰撞的组件基类)
│ │ │ │
│ │ │ ├── UMeshComponent (所有网格组件的基类)
│ │ │ │ ├── UStaticMeshComponent (用于渲染静态网格体)
│ │ │ │ └── USkeletalMeshComponent (用于渲染带有骨骼动画的网格体)
│ │ │ │
│ │ │ └── UShapeComponent (用于简单碰撞的形状组件基类)
│ │ │ ├── UBoxComponent (盒体碰撞)
│ │ │ ├── UCapsuleComponent (胶囊体碰撞,常用于角色)
│ │ │ └── USphereComponent (球体碰撞)
│ │ │
│ │ ├── UCameraComponent (为Actor提供“眼睛”,定义玩家的视野)
│ │ │
│ │ └── ULightComponentBase (所有光源组件的基类)
│ │ └── ULightComponent (光源组件)
│ │ ├── UDirectionalLightComponent (平行光组件)
│ │ ├── UPointLightComponent (点光源组件)
│ │ │ └── USpotLightComponent (聚光源组件)
│ │ └── USkyLightComponent (天光组件)
│ │
│ └── (无空间变换的功能组件)
│ ├── UMovementComponent (控制物体移动逻辑的基类)
│ │ ├── UCharacterMovementComponent (专门控制角色行走、跳跃、游泳)
│ │ └── UProjectileMovementComponent (控制抛射物如子弹、火球的物理运动)
│ │
│ ├── UInputComponent (将输入按键与游戏内行为绑定)
│ │
│ └── UAudioComponent (用于在游戏中播放3D或2D声音)
世界、关卡与核心系统
UObject
│
├── 反射类型系统 (元数据与序列化)
│ ├── UField (反射数据最顶层基类,用于描述类型结构)
│ │ ├── UEnum (描述 UENUM 枚举)
│ │ ├── UStruct (描述复合结构)
│ │ │ ├── UClass (描述 C++ 类 / 蓝图类)
│ │ │ │ └── UBlueprintGeneratedClass (蓝图编译器生成的类)
│ │ │ ├── UScriptStruct (描述 USTRUCT 结构体,如 FVector)
│ │ │ └── UFunction (描述 UFUNCTION 可反射函数)
│ │ └── UProperty (已废弃,UE5中为FProperty)
│ ├── UPackage (包,用于存储序列化数据的容器)
│ └── UMetaData (元数据,存储键值对信息,如 ToolTip、Category)
│
├── 世界与关卡 (场景容器)
│ ├── UWorld (游戏世界的容器,管理 Level、Actor 及 Tick 调度)
│ └── ULevel (关卡,可包含多个 AActor,支持流送)
│
├── 游戏实例与子系统 (生命周期管理器)
│ ├── UGameInstance (跨关卡的游戏全局实例,独立于 World 存在)
│ └── USubsystem (可插拔的系统基类,自动管理生命周期)
│ ├── UEngineSubsystem (引擎级,整个进程生命周期)
│ ├── UGameInstanceSubsystem (随 GameInstance 创建/销毁)
│ ├── UWorldSubsystem (随 World 创建/销毁)
│ ├── ULocalPlayerSubsystem (随 LocalPlayer 创建/销毁)
│ └── UEditorSubsystem (随编辑器模块加载/卸载)
│
├── 引擎核心
│ ├── UEngine (抽象引擎基类,声明核心 Tick 和加载逻辑) —— 引擎单例 GEngine
│ │ └── UGameEngine (游戏运行时模式)
│ │ └── UEditorEngine (编辑器模式)
│ ├── ULocalPlayer (本地玩家控制器映射)
│ ├── UGameViewportClient (游戏视口渲染与输入管理)
│ └── UGameUserSettings (用户设置,如分辨率、画质)
├── 资产核心类型(内容浏览器中可见的主要资产)
│ │
│ ├── 纹理资产 (Textures)
│ │ └── UTexture (纹理基类)
│ │ ├── UTexture2D (最常用的2D纹理,导入的图片)
│ │ ├── UTextureCube (立方体贴图,用于天空盒等)
│ │ ├── UVirtualTexture2D (虚拟纹理,用于大世界高精度贴图流送)
│ │ ├── UTextureRenderTarget (渲染目标纹理)
│ │ ├── UTextureLightProfile (IES配置文件)
│ │ └── UMediaTexture (媒体纹理,将视频帧实时渲染到纹理上)
│ │
│ ├── 材质与着色器 (Materials & Shaders)
│ │ ├── UMaterialInterface (材质接口)
│ │ │ ├── UMaterial (标准材质,可编辑节点图)
│ │ │ └── UMaterialInstance (材质实例)
│ │ │ ├── UMaterialInstanceConstant (常量实例)
│ │ │ └── UMaterialInstanceDynamic (运行时动态实例)
│ │ └── UMaterialParameterCollection (材质参数集合)
│ │
│ ├── 网格体资产 (Meshes)
│ │ ├── UStaticMesh (静态网格体,用于静态几何体)
│ │ ├── USkeletalMesh (骨骼网格体,用于带骨骼动画的模型)
│ │ └── UGeometryCache (几何缓存,用于顶点动画/序列化缓存)
│ │
│ ├── 动画资产 (Animation)
│ │ ├── UAnimBlueprint (动画蓝图,控制动画状态机)
│ │ ├── UAnimSequence (动画序列)
│ │ ├── UAnimMontage (动画蒙太奇,用于技能/打断)
│ │ ├── UBlendSpace (混合空间,1D/2D 多动画姿态混合)
│ │ ├── UAimOffset (瞄准偏移,基于混合空间的特殊变体)
│ │ ├── UAnimationModifier (动画修改器,批量处理动画数据的配置资产)
│ │ ├── UAnimComposite (动画合成片段,按时间拼接多个动画序列)
│ │ └── UCurveBase (曲线基类)
│ │ ├── UCurveFloat (浮点曲线)
│ │ └── UCurveVector (向量曲线)
│ │
│ ├── 音频资产 (Audio)
│ │ ├── USoundBase (声音基类)
│ │ │ ├── USoundWave (原始波形音频文件)
│ │ │ └── USoundCue (声音提示,可组合多个音效)
│ │ ├── USoundAttenuation (衰减设置)
│ │ └── UMetaSoundSource (MetaSound音源,UE5新一代程序化音频生成资产)
│ │
│ ├── 人工智能 (AI)
│ │ ├── UBehaviorTree (行为树,控制NPC决策逻辑)
│ │ ├── UBlackboardData (黑板,行为树的键值对存储容器)
│ │ ├── UEnvQuery (环境查询系统EQS,用于AI感知环境评估)
│ │ └── UAIStateTree (状态树,UE5轻量级AI状态机替代方案)
│ │
│ ├── 过场动画与序列 (Sequencer)
│ │ ├── ULevelSequence (关卡序列,用于过场动画、镜头轨道)
│ │ └── UWidgetAnimation (UMG控件动画,UI界面的内置动画)
│ │
│ ├── 蓝图资产 (Blueprints)
│ │ └── UBlueprint (蓝图基类)
│ │ ├── UBlueprint (普通蓝图类,继承自AActor等)
│ │ ├── UAnimBlueprint (动画蓝图)
│ │ ├── UWidgetBlueprint (UMG UI蓝图)
│ │ └── UGameplayAbilityBlueprint (GAS能力蓝图)
│ │
│ ├── 数据与配置资产 (Data & Config)
│ │ ├── UDataAsset (简单数据容器,开发者自定义结构)
│ │ │ └── UPrimaryDataAsset (支持异步加载的主数据资产)
│ │ ├── UDataTable (数据表,通常来自CSV)
│ │ ├── UCurveTable (曲线表格)
│ │ ├── UUserDefinedStruct (用户自定义结构体资产)
│ │ ├── UGameplayTag (游戏标签,用于GAS技能/状态标识的层级标签)
│ │ └── UCurveBase (曲线基类) -- 注:此处仅代表数据曲线资产,与动画曲线复用基类
│ │ ├── UCurveFloat (浮点曲线)
│ │ └── UCurveVector (向量曲线)
│ │
│ ├── 物理资产 (Physics)
│ │ ├── UPhysicsAsset (物理资产,为骨骼网格体配置碰撞体)
│ │ ├── UPhysicalMaterial (物理材质:摩擦、弹性)
│ │ └── UPhysicalMaterialMask (物理材质遮罩,用于表面破坏贴花或不同区域摩擦系数区分)
│ │
│ └── 其他常用资产 (Utilities)
│ ├── UMaterialFunction (材质函数,可复用的材质节点图)
│ ├── UFont (字体资产)
│ ├── UMediaSource (媒体源,用于视频播放)
│ └── UControlRigBlueprint (控制绑定蓝图,用于程序化绑定与骨骼驱动)