# 运动伤害现场急救处理虚拟仿真实验 (VFS) ## 项目概述 Unity 虚拟仿真教学项目,用于运动伤害现场急救培训。 涵盖五大实验:心肺复苏、骨折固定、扭伤包扎、出血包扎、伤员搬运。 支持**学习模式**(含语音引导 + 画中画演示视频 + 详细操作说明)和**考核模式**(含加权自动判分 + 错题分析)。 ## 目录结构 ``` Assets/ Scripts/ Core/ # 核心管理 ExperimentTypes.cs GameManager.cs # 全局单例:实验/模式/固定方式/加权分数 StepManager.cs # 流程状态机:步骤推进、事件派发 ExperimentFlowCoordinator.cs # 场景协调器 Data/ StepData.cs # ScriptableObject:步骤数据(含评分权重) ExperimentConfig.cs # ScriptableObject:完整实验配置 Interaction/ InteractionSystem.cs # 射线检测/点击/拖拽/序列判定 DraggableObject.cs # 拖拽+吸附 HighlightEffect.cs # 悬停/考核高亮 UI/ UIManager.cs # UI 中央调度 MainMenu.cs # 主菜单 ExamPopup.cs # 考核弹窗(选择题/操作题) ScoreDisplay.cs # 加权成绩 + 错题分析 / 注意事项 VideoController.cs # 画中画视频 Animation/ CharacterAnimController.cs # 角色动画 StepAnimationHandler.cs # 步骤动画协程 Audio/ AudioManager.cs # BGM + 语音解说 Resources/Configs/ # StepData / ExperimentConfig 存放 StreamingAssets/Videos/ # 演示视频 StreamingAssets/Voice/ # 语音解说 Doc/ # 项目文档 01_项目原始大纲与资源清单.md 02_完整流程文案与UI文案.md 03_考核评分标准.md ``` ## 架构要点 - **状态集中**:GameManager 单例持有实验类型/模式/固定方式/加权分数 - **事件驱动**:StepManager 通过 UnityEvent 派发步骤变化,UI/动画/协调器订阅 - **交互分离**:InteractionSystem 检测 → ExperimentFlowCoordinator 判定(含按比例计分)→ StepManager 推进 - **数据驱动**:所有文案、选项、评分权重在 ScriptableObject 配置,无需改代码 - **加权评分**:每步独立 ScoreWeight(满分 100),考核模式按 proportion(0~1)记录得分 ## 评分系统 ### 评分权重(骨折固定·肢体固定) | 步骤 | 名称 | 满分 | 考核重点 | |------|------|------|---------| | 1 | 环境评估 | 5 分 | 环境评估与自我介绍 | | 2 | 伤情检查 | 20 分 | 视觉检查→肿胀畸形→疼痛评估→生命体征→神经评估(5 子项) | | 3 | 脱鞋袜检查 | 10 分 | 脱鞋袜、观察末梢循环 | | 4 | 放置衬带 | 10 分 | 选择正确带子宽度(10cm) | | 5 | 肢体并拢 | 10 分 | 加衬垫、并拢下肢 | | 6 | 主干固定 | 20 分 | 近心端→远心端→膝关节下(3 子项) | | 7 | 踝关节固定 | 15 分 | 8 字固定、结打足背 | | 8 | 终末检查 | 10 分 | 检查循环运动感觉 | **总分 100 分**。SequenceClick 类型按子项命中比例计分。 ### 评分权重(夹板固定模式) | 步骤 | 名称 | 满分 | 考核重点 | |------|------|------|---------| | 1 | 环境评估 | 5 分 | 同肢体固定 | | 2 | 伤情检查 | 20 分 | 同肢体固定 | | 3 | 脱鞋袜检查 | 10 分 | 同肢体固定 | | 4 | 选择夹板 | 10 分 | 长度/硬度需超过相邻两关节 | | 5 | 放置衬垫 | 10 分 | 骨突处加厚衬垫,关节及空隙放衬垫 | | 6 | 夹板固定 | 20 分 | 内侧上至大腿根部下过足跟,外侧上至腋窝下过足跟 | | 7 | 固定后检查 | 15 分 | 末梢颜色/温度/脉搏,调整松紧度 | | 8 | 终末检查 | 10 分 | 同肢体固定 | ### 左大腿骨折夹板固定示例 - 内侧夹板:大腿根部 → 过足跟 - 外侧夹板:腋窝 → 过足跟 - 关节处及空隙部位放置衬垫 ## 接入步骤 ### 1. 创建 Unity 项目 Unity 2021.3 LTS+,3D 模板。安装 TextMeshPro Essentials。 ### 2. 导入脚本 将 `Assets/Scripts/` 下所有 .cs 文件拖入项目对应文件夹。确保有 `VFS.Core.asmdef`。 ### 3. 搭建场景 **MainMenu 场景:** - Canvas → 挂 `MainMenu.cs` - 5 个实验选择按钮 + 模式切换 + 固定方式面板 + 开始按钮 - 空 GameObject → 挂 `GameManager.cs` **Experiment 场景:** - 导入 3D 模型,给可交互物体加 Collider + Tag: - `InjuryLeg` `InjuryVisual` `InjurySwelling` `InjuryPain` `InjuryVitalSigns` `InjuryNeuro` — 伤情检查子项 - `Shoe` `BandagePos1~3` `Ankle` `PaddingPos` `SplintLeft` `SplintRight` `Ground` - 空 GameObject `[Managers]` 挂 GameManager / StepManager / ExperimentFlowCoordinator / AudioManager - 主相机挂 `InteractionSystem.cs` - Canvas 挂 `UIManager.cs`,子面板挂 `ExamPopup` / `ScoreDisplay` / `VideoController` - 学习模式详细内容面板挂于 Canvas 下,在 `UIManager._detailPanel` 拖入 ### 4. 配置步骤 - Create → VFS → Step Data(逐步骤填入 ScoreWeight / SubStepCount / TipText / DetailedContent / 考核选项) - Create → VFS → Experiment Config(组装 LearnStepsLimb / ExamStepsLimb / LearnStepsSplint / ExamStepsSplint) - 拖入 `StepManager.Config` ### 5. 连线 - `ExperimentFlowCoordinator` Inspector 拖入 StepManager / InteractionSystem / UIManager / StepAnimationHandler / AudioManager - `UIManager` Inspector 拖入各 UI 引用(Tip / Detail / Dialogue / ExamPopup / ScoreDisplay / VideoController / Buttons) ### 6. 视频/语音 - 真人演示视频放入 `StreamingAssets/Videos/` - 语音解说放入 `StreamingAssets/Voice/` ## 依赖 - Unity 2021.3+ - TextMeshPro Essentials - 无第三方插件