UEC++ 数据类型及继承关系

基础类型

基础类型
  ├── 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 (控制绑定蓝图,用于程序化绑定与骨骼驱动)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值