关于 spacetimedb-client-c-sharp
用于使用 SpacetimeDB 实现 C# 和 Unity 客户端的技能,涵盖生成绑定、连接、订阅及运行时规则。它帮助开发者使用项目生成的 API,并将 Unity 生命周期代码与生成代码分开。
主要功能
- 01生成 C# 客户端绑定
- 02配置连接与订阅
- 03读取订阅行并处理事件
- 04调用 reducer 并注册回调
- 05遵循 Unity 运行时与线程规则
适用场景
- 01构建 SpacetimeDB C# 客户端
- 02将 Unity 项目连接到数据库
- 03读取表更新并调用 reducer
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ danmossa/ spacetimedb-skills --skill spacetimedb-client-c-sharp安装后在 Claude Code 中输入/spacetimedb-client-c-sharp确认已加载。
附带文件references/clients-c-sharp.md
详细介绍
将此技能用于 C# 和 Unity 客户端实现。
C# 核心模式
生成 C# 绑定,并使用用户项目中生成的 DbConnection、RemoteTables 和 RemoteReducers 名称:
spacetime generate --lang csharp --out-dir client/module_bindings --module-path spacetimedb
var conn = DbConnection.Builder()
.WithUri(new Uri("ws://localhost:3000"))
.WithDatabaseName("my-database")
.OnConnect((conn, identity, token) =>
{
conn.SubscriptionBuilder().SubscribeToAllTables();
})
.OnConnectError((ctx, err) => Log.Error(err.ToString()))
.OnDisconnect((ctx, err) => Log.Info("Disconnected"))
.Build();
运行时规则
- 从主循环或 Unity 更新路径调用
conn.FrameTick();否则不会应用回调和缓存更新。 - 当主线程代码读取
conn.Db时,不要在后台线程运行FrameTick()。 - 通过
conn.Db.<Table>.Iter()、Count和生成的唯一索引句柄读取已订阅的行。 - 使用
OnInsert、OnDelete和OnUpdate注册表事件;OnUpdate需要主键。 - 通过
conn.Reducers.<ReducerName>(...)调用 reducer,并在需要时注册生成的 reducer 事件。 - 将 Unity 生命周期代码保留在 MonoBehaviour 或服务类中,不要编辑生成的绑定。
参考索引
| 需求 | 打开 |
|---|---|
| C# SDK API | references/clients-c-sharp.md |
指南
- 如果用户项目中已有生成的 C# 绑定名称,请使用这些名称。
- 将 Unity 生命周期代码与生成的绑定代码分开,除非项目本身已将两者合并。
- 完整的 Unity 教程工作请转交给 spacetimedb-tutorials。
评论
支持 Markdown