TabletopKit 是 Apple 提供的空间桌面游戏框架,仅在 visionOS 2.0+ 上可用,使用 Swift 编写。它用于在虚拟桌面表面创建多人棋盘游戏,负责游戏布局、棋具交互、玩家座位、回合管理、状态同步与 RealityKit 渲染。
主要能力:
- 用 TableSetup 与 TabletopGame 配置桌面、座位、棋具(棋子、卡牌、骰子)和计分器。
- 通过 TabletopAction 修改状态,如移动棋具、翻牌、更新骰子值、设置回合、更新计分与创建状态书签;也可实现 CustomAction 自定义逻辑并注册。
- 座位通过 claimAnySeat()、claimSeat(matching:) 认领,否则操作会被拒绝。
- 棋具以 Equipment/EntityEquipment 定义,状态类型有 BaseEquipmentState、CardState、DieState、RawValueState。
- 交互由 TabletopInteraction.Delegate 处理,支持掷骰、投掷形状与手势配置。
- 渲染通过 EntityRenderDelegate 接入 RealityKit,并在 SwiftUI 的 RealityView 上用 .tabletopGame 修饰符连接。
- 多人通过 GroupActivities 与 coordinateWithSession(_:) 实现,自动同步棋具状态、座位、动作与交互;多人需在 FaceTime 通话中的真实 Apple Vision Pro 设备上测试,模拟器仅支持单人布局测试。
必要用法:import TabletopKit 与 import RealityKit;多人需在 Signing & Capabilities 添加 Group Activities 能力;提供 USDZ 3D 资源。所有状态变更必须走 TabletopAction 或 CustomAction,直接改属性会绕过同步。常见错误包括平台误用、未认领座位、未注册自定义动作、未处理 action 回滚、parentID 无效、忽略 TossOutcome 面值等。
限制:仅 visionOS;多人功能依赖 FaceTime 与实体设备;资料未提供具体收费与价格信息。