SimpleByteConversion 使用文档
SimpleByteConversion 的完整中文产品使用文档
支持的虚幻引擎版本:5.2–5.8
SimpleByteConversion 是一个为 Unreal Engine 蓝图系统设计的轻量级字节数据转换插件。
支持原生类型和结构体与字节/Json 之间的双向转换,所有功能均以蓝图节点暴露。
🔧 插件初始化
Section titled “🔧 插件初始化”插件启用后自动生效。
所有功能通过蓝图节点访问,无需管理子系统或插件生命周期。
🔣 支持的类型转换
Section titled “🔣 支持的类型转换”📦 原生类型 ↔ 字节数组
Section titled “📦 原生类型 ↔ 字节数组”| 类型 | 转换支持 |
|---|---|
int32 | 转为/转自字节 |
int64 | 转为/转自字节 |
float | 转为/转自字节 |
double | 转为/转自字节 |
bool | 转为/转自字节 |
FString | 转为/转自字节(UTF-8 编码) |
这些函数适用于自定义协议、轻量存储或二进制通信。
(插入图片: BasicTypeConversion.jpg)
🧱 结构体 ↔ 字节数组 / Json 字符串
Section titled “🧱 结构体 ↔ 字节数组 / Json 字符串”插件支持任何暴露给蓝图的 USTRUCT:
- 与字节数组互转:
Struct To Bytes/Bytes To Struct - 与 JSON 字符串互转:
Struct To JsonString/JsonString To Struct
此功能使用 Unreal 的反射系统自动序列化和反序列化字段,同时保留原始命名和浮点精度。
⚠️ 不支持:包含对象引用的结构体,如
UObject*、TSoftObjectPtr、TWeakObjectPtr,或资源句柄如FSoftObjectPath。
JSON 转换优势:
Section titled “JSON 转换优势:”| 特性 | SimpleByteConversion | UE 原生 FJsonObjectConverter |
|---|---|---|
| 字段名保留 | ✅ 是 | ❌ 转为 camelCase |
| Float/Double 精度 | ✅ float(9位), double(17位) | ❌ 默认精度较低 |
| 完整蓝图支持 | ✅ 是 | ⚠️ 部分支持 / 需要 C++ |
🧪 蓝图节点概览(图片)
Section titled “🧪 蓝图节点概览(图片)”- 所有节点均为
BlueprintPure——无需执行引脚 - 可组合用于网络、文件存取或自定义协议
StringToBytes和BytesToString使用 UTF-8 编码,确保跨平台安全转换- 结合使用
StructToBytes和StructToJsonString可用于调试和网络消息
🔧 推荐配套插件
Section titled “🔧 推荐配套插件”与 SimpleTCPClient 和 SimpleUDP 插件配合使用效果极佳。
一起使用可通过 TCP/UDP 发送结构化消息并解码。
打开 编辑 → 项目设置,进入 SimpleByteConversion 设置页,将 Language 设置为 English 或 中文。默认语言为英文。面向用户的界面、提示、通知和功能日志会立即更新,无需重启编辑器;公开 API 名称以及模块启动/关闭日志始终保持英文。
如有使用问题或合作需求,请前往联系页面。
- 联系入口: 联系与合作
使用说明补充
Section titled “使用说明补充”SimpleByteConversion 使用指南
Section titled “SimpleByteConversion 使用指南”基础类型节点
Section titled “基础类型节点”基础类型提供 ToBytes 和 FromBytes 双向转换:
| 类型 | 转字节 | 从字节还原 |
|---|---|---|
| int32 | IntToBytes | BytesToInt |
| int64 | Int64ToBytes | BytesToInt64 |
| float | FloatToBytes | BytesToFloat |
| double | DoubleToBytes | BytesToDouble |
| bool | BoolToBytes | BytesToBool |
| FString | StringToBytes | BytesToString |
所有节点均为 BlueprintPure,可以直接在蓝图中作为纯函数使用,无需执行引脚。
- StructToBytes / BytesToStruct:结构体与二进制字节数组之间转换。
- StructToJsonString / JsonStringToStruct:结构体与 JSON 字符串之间转换。
步骤1:安装插件
Section titled “步骤1:安装插件”将插件文件夹复制到项目的 Plugins 目录,重启编辑器。
步骤2:在蓝图中使用
Section titled “步骤2:在蓝图中使用”所有节点都在 SimpleByteConversion 分类下:
- 基础类型:搜索
IntToBytes、FloatToBytes等 - 结构体:搜索
StructToBytes、StructToJsonString等
步骤3:C++ 中使用
Section titled “步骤3:C++ 中使用”在 C++ 中可以直接调用 ByteConverter 工具类:
#include "ByteConverter.h"
// 基础类型TArray<uint8> Bytes;ByteConverter::IntToBytes(42, Bytes);
// 结构体FMyStruct Data;ByteConverter::StructToBytes(&Data, FMyStruct::StaticStruct(), Bytes);
// JSONFString JsonStr;ByteConverter::StructToJsonString(&Data, FMyStruct::StaticStruct(), JsonStr);场景1:UDP/TCP 网络通信
Section titled “场景1:UDP/TCP 网络通信”网络发送前,将需要传输的结构化数据编码为字节数组:
1. 定义一个结构体(如 FPlayerState:位置、血量、状态)2. 使用 StructToBytes 将结构体转为 TArray<uint8>3. 通过 UDP/TCP 发送字节数组4. 接收端使用 BytesToStruct 还原为结构体场景2:与 Python 程序交换数据
Section titled “场景2:与 Python 程序交换数据”使用 JSON 格式进行跨语言数据交换:
1. UE 端:StructToJsonString 将游戏数据转为 JSON 字符串2. 通过 TCP/WebSocket 发送给 Python 程序3. Python 端:json.loads() 直接解析4. 反向同理:Python json.dumps() → UE JsonStringToStruct场景3:数据持久化
Section titled “场景3:数据持久化”将游戏存档序列化为二进制文件:
1. 将存档结构体通过 StructToBytes 转为字节数组2. 使用 FFileHelper::SaveArrayToFile 写入磁盘3. 读取时 FFileHelper::LoadFileToArray 加载字节数组4. BytesToStruct 还原为存档结构体传输两端需要约定字段、编码与数据格式。跨语言交互时应先用一组固定数据检查转换结果。



