SuperAPI AI 工具集

unreal

通用与其它

查看项目

更新于 10-15 19:50

技能介绍

用途:该技能面向使用 Unreal Engine 构建、需要连接 SpacetimeDB 的客户端,提供 UE 特定的连接与数据交互模式;服务端模块开发需另见 rust-server 或 csharp-server 技能。

主要能力:将 SpacetimeDbSdk 作为插件接入 Unreal 项目;用 spacetime generate --lang unrealcpp 生成 C++ 绑定与行类型;通过连接构建器配置 URI、数据库名、Token、压缩与连接/断开/错误回调;连接后订阅全部表或指定 SQL 查询,并获取订阅句柄以检查状态或取消;通过 Conn->Db 按主键查找、按 BTree 索引过滤、遍历或计数客户端缓存;为表的插入、删除、更新注册动态多播委托;通过 Conn->Reducers 调用 reducers 并监听调用结果;使用 UCredentials 保存和加载 Token。核心类均可用于蓝图。

使用方式:把 SpacetimeDbSdk 复制到项目 Plugins/ 后重新生成 Visual Studio 工程文件,并在 Build.cs 中添加 "SpacetimeDbSdk" 依赖。生成绑定命令:spacetime generate --lang unrealcpp --uproject-dir <path_to_uproject_directory> --module-path <path_to_spacetimedb_module> --unreal-module-name <your_unreal_module_name>,并包含 "ModuleBindings/SpacetimeDBClient.g.h"。推荐用单例 Actor 持有连接,并绑定委托使用 BIND_DELEGATE_SAFE。

限制与注意:SDK 只在 tick 时处理网络消息,必须在 Actor 的 Tick 中调用 Conn->FrameTick(),或启动时调用 Conn->SetAutoTicking(true),二者择一,否则不会触发回调、客户端看似无响应。表、reducers 或类型变更后需重新生成绑定。OnUpdate 仅对带主键的行触发;reducer 结果回调只针对本连接发出的调用。自签发 Token 不过期且丢失无法恢复,仅适合开发;生产环境应使用 SpacetimeAuth 等 OIDC 提供方。压缩默认 Gzip,可设为 None。