基础类型
基础类型
├── int8, int16, int32, int64
├── uint8, uint16, uint32, uint64
├── float, double
└── bool
核心字符串与名称
├── 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 (静态数学函数)
智能指针 (T开头)
├── TSharedPtr (共享所有权)
├── TSharedRef (非空共享引用)
├── TWeakPtr (弱引用)
├── TUniquePtr (独占所有权)
└── TSharedFromThis (支持生成TSharedPtr)
委托与事件
├── 单播委托
│ ├── FDelegate (无返回值)
│ └── FRetValDelegate (有返回值)
├── 多播委托
│ └── FMulticastDelegate
├── 动态委托 (蓝图可用)
│ ├── FScriptDelegate
│ └── FMulticastScriptDelegate
└── 事件
└── FSimpleDelegate
文件、流与序列化
├── FArchive (序列化基类)
├── FBufferArchive (内存写入)
├── FMemoryReader (内存读取)
├── FMemoryWriter (内存写入)
├── FFileHandle (文件句柄)
└── FPaths (路径工具)
日志与输出
├── FOutputDevice (输出设备基类)
├── FOutputDeviceConsole (控制台输出)
├── FOutputDeviceFile (文件输出)
├── FOutputDeviceDebug (调试器输出)
├── FOutputDeviceRedirector (重定向器, 即GLog)
└── FLogCategoryBase (日志类别基类)
平台抽象层 (FPlatform*)
├── FPlatformProcess (进程管理)
├── FPlatformMisc (杂项功能)
├── FPlatformMemory (内存管理)
├── FPlatformFileManager (文件管理)
├── FGenericPlatformProcess (通用进程基类)
├── FGenericPlatformMisc (通用杂项基类)
├── FGenericPlatformMemory (通用内存基类)
├── FGenericPlatformFileManager (通用文件管理基类)
├── FWindowsPlatform* (Windows实现)
├── FLinuxPlatform* (Linux实现)
├── FMacPlatform* (Mac实现)
└── FAndroidPlatform* (Android实现)
异步与并发
├── FRunnable (线程接口)
├── FRunnableThread (线程)
├── FEvent (事件)
├── FGraphEventRef (任务图事件引用)
├── FTaskGraphInterface (任务图接口)
└── TFuture (异步结果)
反射与元数据辅助类型 (非UObject)
├── FProperty (属性描述基类)
│ ├── FStructProperty
│ ├── FObjectProperty
│ ├── FClassProperty
│ ├── FArrayProperty
│ ├── FSetProperty
│ ├── FMapProperty
│ ├── FStringProperty
│ ├── FNameProperty
│ ├── FTextProperty
│ ├── FIntProperty
│ ├── FFloatProperty
│ ├── FDoubleProperty
│ ├── FBoolProperty
│ ├── FByteProperty
│ ├── FEnumProperty
│ └── ... (数十种具体属性类型)
├── FScriptArray (底层数组容器)
├── FScriptMap (底层哈希表容器)
├── FScriptSet (底层集合容器)
├── FWeakObjectPtr (弱UObject指针)
└── FSoftObjectPath (软对象路径)
枚举 (E开头)
├── ENetRole
├── ENetMode
├── EObjectFlags
├── EFunctionFlags
├── EPropertyFlags
├── EObjectMark
├── EObjectStatus
├── EAppMsgType
├── EAppReturnType
├── ELogVerbosity
├── EAsyncLoadingResult
├── ETravelType
├── ELevelTick
├── EInputEvent
├── EAxis
├── EMouseCursor
├── EBlendMode
├── ESoundGroup
├── EPixelFormat
└── ... (数百个其他引擎枚举)
其他常用结构
├── FKey (输入按键)
├── FSlateBrush (UI画刷)
├── FAssetData (资产数据)
├── FFormatNamedArguments (格式化参数)
├── FScriptDelegate (脚本委托,已在上文委托中列出)
├── FHitResult (碰撞命中结果)
├── FStringClassReference (类引用)
└── FSoftClassPath (软类路径)
UObject类型
// UObject基类继承关系
UObjectBase (最底层,内存/GC/标志位)
└── UObjectBaseUtility (增加工具函数,如GetName/IsA)
└── UObject (对所有开发者公开的根类)
// 游戏框架 (Actor体系)
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 (标记玩家在关卡中的出生位置)
│
└── 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
│ │ ├── UStruct
│ │ │ ├── UClass (描述C++类)
│ │ │ │ └── UBlueprintGeneratedClass (蓝图生成的类)
│ │ │ ├── UScriptStruct (描述USTRUCT结构体,如FVector)
│ │ │ └── UFunction (描述UFUNCTION函数)
│ │ ├── UEnum (描述UENUM枚举)
│ │ └── UProperty (已废弃,UE5中为FProperty)
│ └── UPackage (包)
│
├── 世界与关卡
│ ├── UWorld (世界容器)
│ └── ULevel (关卡)
│
├── 游戏实例与子系统
│ ├── UGameInstance (游戏实例)
│ └── USubsystem (子系统基类)
│ ├── UEngineSubsystem (引擎级别)
│ ├── UGameInstanceSubsystem (游戏实例级别)
│ ├── UWorldSubsystem (世界级别)
│ └── ULocalPlayerSubsystem (本地玩家级别)
│
├── 数据资产
│ ├── UDataAsset (简单数据容器)
│ └── UPrimaryDataAsset (支持异步加载)
│
└── 其他重要UObject
├── UBlueprint (蓝图资产)
├── UEngine (引擎单例)
├── ULocalPlayer (本地玩家)
└── UGameViewportClient (视口)