Files
VFSUnity/README.md
T
yangbear a11e003fcd feat: VFS 虚拟仿真实验核心框架 v2
- 加权评分系统:每步独立 ScoreWeight,满分 100,SequenceClick 按子项比例计分
- StepData 新增 DetailedContent(学习模式详细操作说明)和 SubStepCount
- 伤情检查步骤扩展为 5 子项序列(视觉检查→肿胀→疼痛→生命体征→神经评估)
- 夹板固定模式完整评分(选择夹板→放置衬垫→夹板固定→固定后检查)
- Doc/ 文件夹归档三份文档:项目大纲、文案、评分标准
- README 更新评分权重表和夹板固定流程
2026-06-24 02:07:43 +08:00

132 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 运动伤害现场急救处理虚拟仿真实验 (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
- 无第三方插件