跳转至

数据类型

除 SDK 支持的数据类型外,Markup UI 的 Unreal Engine 插件还映射了 UE 原生类型,扩大了可用于数据绑定的数据类型范围。业务代码可以继续使用 UE 字符串、数学类型和容器,无需逐项手动转换为 SDK 类型。

原生类型

插件提供以下 UE 类型到 SDK 标量的映射:

UE 类型 SDK 数据类型 说明
FString、FUtf8String、FText、FName String 字符串、文本和名称以字符串值传递
FColor Color 整数颜色分量
FLinearColor ColorF 浮点颜色分量
FVector2f、FVector2d Vector2 二维向量
FVector3f、FVector3d Vector3 三维向量
FQuat4f、FQuat4d Matrix4x4 四元数旋转以矩阵传递
FRotator3f、FRotator3d Matrix4x4 欧拉角旋转以矩阵传递
FMatrix44f、FMatrix44d Matrix4x4 四阶矩阵
FTransform3f、FTransform3d Matrix4x4 变换以矩阵传递

常用名称 FVector2D、FVector、FQuat、FRotator、FMatrix、FTransform 按其实际对应的类型使用映射。旋转和变换类型以矩阵参与 SDK 数据传递,映射不会自动增加 HTML/CSS 的渲染能力。

bool、int8、uint8、int16、uint16、int32、uint32、int64、uint64、float、double 使用对应的 SDK 布尔或数字类型。

枚举、对象与集合

  • 枚举:支持 SDK 已支持的 C++ 枚举形式,并适配 TEnumAsByte<TEnum>,后者按其实际存储的单字节整数传递。
  • 对象:数据对象上的 UObject 引用和弱对象引用可作为对象读取,通过属性路径继续访问其成员;对象引用当前不支持通过普通属性绑定替换。
  • 结构体:反射属性中的 USTRUCT 可以作为对象访问其受支持的成员。它与原生标量映射是不同的访问方式。
  • 数组:TArray<T> 映射为 SDK 的数组访问接口。
  • 映射:TMap<TKey, TValue> 映射为 SDK 的 Map 访问接口。
  • 集合:TSet<T> 映射为 SDK 的 Set 访问接口。
  • 共享与弱指针:SDK C++ 数据模型适配 TSharedPtr<T, ESPMode::ThreadSafe> 和 TWeakPtr<T, ESPMode::ThreadSafe>;非线程安全模式不在此适配范围内。

容器的元素、键和值仍需满足对应类型支持规则。集合变更需要通知页面,具体用法见属性绑定。共享指针适配用于 SDK C++ 数据模型,不替代 UObject 的垃圾回收规则。

C++ 使用

#include "CoreMinimal.h"
// 必须引入 UE 专用 SDK 头文件,提供 UE 类型适配并支持编译期类型检查。
#include "MarkupUISdk.h"

使用插件的 C++ SDK 接口时,应先引入 MarkupUISdk.h,再使用相关模板,确保 UE 类型适配已声明。

原生标量映射用于 SDK C++ 模型和受支持的命令参数。UObject 反射属性中的结构体按对象路径访问,不意味着所有结构体属性都会自动作为 SDK 标量处理。属性是否可写及变更通知规则见属性绑定,命令参数规则见命令绑定。