mcpField
S
spacetimedb-client-unreal

spacetimedb-client-unreal

github.com/danmossa开发2146 次安装19 周前更新
代码仓库

关于 spacetimedb-client-unreal

用于在 Unreal Engine 中实现 SpacetimeDB 客户端的技能,涵盖代码生成、连接配置、订阅处理及 Unreal SDK 的运行时模式。

主要功能

  1. 01生成 Unreal 绑定代码
  2. 02配置数据库连接
  3. 03读取已订阅的表缓存
  4. 04调用 reducer 并绑定委托
  5. 05管理订阅与回调

适用场景

  1. 01在 Unreal 项目中添加 SpacetimeDB 客户端
  2. 02为游戏模块生成绑定代码
  3. 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 APIreferences/clients-unreal.md

指引

  • 按照参考中的模式,保持 Unreal 连接 tick 和回调绑定方式一致。
  • 使用本地项目生成的 Unreal 类名,不要盲目照搬示例标识符。
  • 将完整的 Unreal 教程任务交由 spacetimedb-tutorials。

评论

支持 Markdown