UE5 C++ 脚本的基本类型

前言 在 Unreal Engine 5 的 C++ 开发中,除了标准 C++ 类型,还会频繁接触 UE 自己封装的一套类型系统。本文作为入门草稿,先把最常用、最容易混淆的类型梳理清楚。 1. 数值与布尔类型 UE5 中可以直接使用标准 C++ 基本类型,但官方代码风格更常见的是固定宽度别名: int8 / uint8 int16 / uint16 int32 / uint32 int64 / uint64 float double bool 示例: int32 Health = 100; float MoveSpeed = 600.0f; bool bIsAlive = true; 说明: int32 在 UE 项目中非常常用,跨平台行为更稳定。 uint8 常用于小范围状态值或位标记。 布尔变量通常以 b 开头(如 bIsAlive),是 UE 常见命名习惯。 2. 字符串相关类型 UE 里最常见的文本类型有 3 个:FString、FName、FText。 为什么不建议在 UE5 C++ 脚本里优先用 C++ 原生 std::string: 与 UE 反射系统和编辑器生态耦合较弱,不能直接享受 UPROPERTY、蓝图暴露和常见序列化工作流。 与 UE 常用 API 对接时通常还要频繁做类型转换(std::string <-> FString / FText),会增加样板代码和维护成本。 本地化场景下,FText 有完整的文本管线支持;std::string 更适合纯底层逻辑,不适合直接做玩家可见文本。 UE 社区和官方示例主要围绕 FString、FName、FText,团队协作和排查问题时可读性更高。 FString 可变字符串,适合拼接、调试输出、运行时处理。 类似“通用字符串容器”。 FString PlayerName = TEXT("DaVinci"); FString Msg = FString::Printf(TEXT("玩家: %s"), *PlayerName); FName 不区分大小写语义(底层做了名称表优化)。 适合做标识符、标签、键值名、资源名。 频繁比较时通常比 FString 更高效。 FName SocketName = TEXT("WeaponSocket"); FText 面向本地化显示文本(UI 文本优先用它)。 需要给玩家看的文本,优先考虑 FText。 FText DisplayText = FText::FromString(TEXT("开始游戏")); 3. 常用数学结构体 UE5 提供了大量数学类型,最常见的是: ...

April 5, 2026 · 2 min