UE4将字节数组转化为结构体的代码
时间: 2023-08-14 07:06:34 浏览: 166
C#中结构体定义并转换字节数组详解
在UE4中,将字节数组转换为结构体可以使用以下代码:
```cpp
// 定义结构体,需与发送端一致
USTRUCT(BlueprintType)
struct FMyStruct
{
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStruct")
int32 IntValue;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStruct")
float FloatValue;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "MyStruct")
FString StringValue;
};
// 将字节数组转换为结构体
FMyStruct MyStruct;
FMemoryReader MemoryReader = FMemoryReader(Bytes, true);
MemoryReader << MyStruct;
```
在上面的代码中,FMyStruct 是自定义的结构体,需要与发送端定义的结构体一致。MyStruct 是接收到的结构体对象,Bytes 是接收到的字节数组。FMemoryReader 是一个用于读取内存数据的类,将字节数组传入它的构造函数中即可。最后,使用 "<<" 运算符将 MemoryReader 中的数据读取到 MyStruct 对象中。
需要注意的是,结构体中的属性需要用 UPROPERTY 宏进行修饰,以便在蓝图中访问。如果结构体中存在引用类型(如 FString),需要将 bIsPersistent 选项设置为 true,以便在 MemoryReader 中正确地序列化和反序列化。
阅读全文