
知识抢答小游戏
游戏开发Unity2DC#/.ASP多人竞技
基于 Unity + C# 的展览厅互动答题装置,支持三人同屏抢答、题库分类管理、实时计分与排名结算,配套 ASP.NET Core 题库管理后台
技术方案
- 五层解耦架构:Content(题库加载与容错)→ Core(流程状态机驱动)→ Input(输入抽象层)→ Rules(纯逻辑判题计分)→ UI(Presenter-Screen 分离),层间单向依赖,核心逻辑与表现层完全解耦
- 可替换输入抽象:定义 IResponderInputService 统一接口(连接/断开/作答三种事件),当前以键盘模拟三路输入调试,预留 WebSocket 服务端通信协议(注册/心跳/答案消息 JSON 协议),后续可无缝替换为串口或真实硬件 SDK 而不改动上层流程
- 状态机驱动的 UI 管理:QuizFlowController 统一管控主流程(等待开始→分类选择→规则展示→答题进行→结算)与单题子状态(等待抢答→结果揭示),QuizScreenCoordinator 监听状态变化自动切换页面生命周期(Enter/Refresh/Exit),屏幕组件通过 VisibleStates 声明多状态驻留
- 抢答与计分规则:首个有效输入全局锁题,服务器端接收时间判定抢答顺序;答对加全分,答错其余选手各加半分,无人作答全员零分;排名按总分→正确数→最后得分时间→玩家 ID 四级排序
- 外部可编辑题库系统:StreamingAssets/QuizContent/ 下 JSON 文件驱动(manifest 索引 + 分类 category.json + 封面图片),支持运行时热刷新;内置多层容错(缺失 manifest/封面加载失败/选项越界/空题目等异常均不阻塞其他分类加载),统一使用 Newtonsoft.Json 保证解析容错能力
- 独立题库管理后台:ASP.NET Core 8 + Razor Pages 实现,直接读写 Unity 题库目录(零数据库),支持分类与题目的增删改查、封面上传、数据校验、排序调整,与 Unity 主程序共享同一文件目录,本机或局域网访问
- 通用 UGUI 动效系统:自研 UIEffectAnimator 组件,支持 7 种动效(呼吸缩放/悬浮放大/按下缩放/透明度呼吸/弹出入场/滑入入场/点击抖动),按通道独立组合不互相覆盖,提供 Custom Editor 面板,面向非程序员友好配置
- Editor 工具与测试:UIEffectAnimatorEditor 提供 Inspector 可视化配置;EditMode 单元测试覆盖 UI 动效组合逻辑、答题 Presenter、屏幕协调器状态切换






