用途:帮助在 C# 与 Unity 项目中实现 SpacetimeDB 客户端,涵盖生成绑定、连接建立、订阅、缓存读取、reducer 调用与回调注册。
主要能力与用法:
- 生成 C# 绑定,使用项目生成出的 DbConnection、RemoteTables、RemoteReducers 名称: spacetime generate --lang csharp --out-dir client/module_bindings --module-path spacetimeb (原文命令为 --module-path spacetimeb,请以项目实际路径为准。)
- 构建连接,示例包含 WithUri、WithDatabaseName、OnConnect、OnConnectError、OnDisconnect 与 Build;在 OnConnect 中可通过 conn.SubscriptionBuilder().SubscribeToAllTables() 订阅表。
- 运行时必须在主循环或 Unity 更新路径调用 conn.FrameTick(),否则回调与缓存更新不会生效;不要在后台线程调用 FrameTick 同时主线程读取 conn.Db。
- 通过 conn.Db.<Table>.Iter()、Count 以及生成的唯一/索引句柄读取已订阅行;用 OnInsert、OnDelete、OnUpdate 注册表事件,其中 OnUpdate 需要主键。
- 通过 conn.Reducers.<ReducerName>(...) 调用 reducer,并按需注册生成的 reducer 事件。
- Unity 生命周期代码应放在 MonoBehaviour 或服务类中,不要修改生成的绑定代码。
适用场景:C# 应用或 Unity 游戏客户端接入 SpacetimeDB。
限制:资料未提供收费、价格、平台支持、性能效果等信息;完整 Unity 教程应参考 spacetimedb-tutorials。