mcpField
S
spacetimedb-client-c-sharp

spacetimedb-client-c-sharp

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

关于 spacetimedb-client-c-sharp

用于使用 SpacetimeDB 实现 C# 和 Unity 客户端的技能,涵盖生成绑定、连接、订阅及运行时规则。它帮助开发者使用项目生成的 API,并将 Unity 生命周期代码与生成代码分开。

主要功能

  1. 01生成 C# 客户端绑定
  2. 02配置连接与订阅
  3. 03读取订阅行并处理事件
  4. 04调用 reducer 并注册回调
  5. 05遵循 Unity 运行时与线程规则

适用场景

  1. 01构建 SpacetimeDB C# 客户端
  2. 02将 Unity 项目连接到数据库
  3. 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 APIreferences/clients-c-sharp.md

指南

  • 如果用户项目中已有生成的 C# 绑定名称,请使用这些名称。
  • 将 Unity 生命周期代码与生成的绑定代码分开,除非项目本身已将两者合并。
  • 完整的 Unity 教程工作请转交给 spacetimedb-tutorials。

评论

支持 Markdown