Files

132 lines
5.6 KiB
Markdown
Raw Permalink Normal View History

2026-06-24 02:07:43 +08:00
# 运动伤害现场急救处理虚拟仿真实验 (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),考核模式按 proportion0~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
- 无第三方插件