关于 spacetimedb-client-unreal
用于在 Unreal Engine 中实现 SpacetimeDB 客户端的技能,涵盖代码生成、连接配置、订阅处理及 Unreal SDK 的运行时模式。
主要功能
- 01生成 Unreal 绑定代码
- 02配置数据库连接
- 03读取已订阅的表缓存
- 04调用 reducer 并绑定委托
- 05管理订阅与回调
适用场景
- 01在 Unreal 项目中添加 SpacetimeDB 客户端
- 02为游戏模块生成绑定代码
- 03在游戏逻辑中处理订阅事件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ danmossa/ spacetimedb-skills --skill spacetimedb-client-unreal安装后在 Claude Code 中输入/spacetimedb-client-unreal确认已加载。
附带文件references/clients-unreal.md
详细介绍
使用此技能实现 Unreal Engine 客户端。
Unreal 核心模式
使用项目模块详情生成 Unreal 绑定:
spacetime generate --lang unrealcpp --uproject-dir path/to/Game.uproject --module-path spacetimedb --unreal-module-name Game
连接结构:
UDbConnection* Conn = UDbConnection::Builder()
->WithUri(TEXT("ws://localhost:3000"))
->WithDatabaseName(TEXT("my-database"))
->OnConnect(OnConnectDelegate)
->OnConnectError(OnConnectErrorDelegate)
->OnDisconnect(OnDisconnectDelegate)
->Build();
运行时规则
- Unreal SDK 会通过 WebSocket 回调和
UDbConnection的 tick 自动处理消息;除非项目中已有手动轮询循环,否则不要添加。 - 使用生成的
Conn->Db表对象读取已订阅的缓存,并通过Conn->Reducers调用 reducer。 - 如果启动事件很重要,请在订阅前绑定
OnInsert、OnDelete、OnUpdate和 reducer 委托。 SubscribeToAllTables()适用于示例;生产代码应订阅特定的 SQL/查询集。- 使用项目中生成的 Unreal 类名和委托名。除非本地项目中确实存在,否则不要照搬示例中的
UUserTable或FUserType标识符。 - 除非现有项目布局已将它们合并,否则请将插件设置、生成代码和游戏类分开。
参考索引
| 需求 | 打开 |
|---|---|
| Unreal SDK API | references/clients-unreal.md |
指引
- 按照参考中的模式,保持 Unreal 连接 tick 和回调绑定方式一致。
- 使用本地项目生成的 Unreal 类名,不要盲目照搬示例标识符。
- 将完整的 Unreal 教程任务交由 spacetimedb-tutorials。
评论
支持 Markdown