c3d1efbe2c2479a5ec133a37d0c7e4c703e59ac3
运动伤害现场急救处理虚拟仿真实验 (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:
InjuryLegInjuryVisualInjurySwellingInjuryPainInjuryVitalSignsInjuryNeuro— 伤情检查子项ShoeBandagePos1~3AnklePaddingPosSplintLeftSplintRightGround
- 空 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. 连线
ExperimentFlowCoordinatorInspector 拖入 StepManager / InteractionSystem / UIManager / StepAnimationHandler / AudioManagerUIManagerInspector 拖入各 UI 引用(Tip / Detail / Dialogue / ExamPopup / ScoreDisplay / VideoController / Buttons)
6. 视频/语音
- 真人演示视频放入
StreamingAssets/Videos/ - 语音解说放入
StreamingAssets/Voice/
依赖
- Unity 2021.3+
- TextMeshPro Essentials
- 无第三方插件
Description
Languages
C#
77.7%
ShaderLab
8.2%
GLSL
5.5%
JavaScript
2.9%
Wolfram Language
2.6%
Other
3.1%