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

64 lines
2.1 KiB
C#
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.
using UnityEngine;
/// <summary>
/// 单个实验步骤的数据配置(ScriptableObject)。
/// 在 Unity Editor 中为每个实验创建一份 StepData 列表。
/// </summary>
[CreateAssetMenu(fileName = "StepData", menuName = "VFS/Step Data")]
public class StepData : ScriptableObject
{
[Header("=== 评分 ===")]
[Tooltip("本步骤满分(考核模式下使用,总分 100 分)")]
[Range(0f, 100f)]
public float ScoreWeight = 10f;
[Tooltip("本步骤的子项数量(如伤情检查有 5 个子项,用于 SequenceClick 按比例计分)")]
public int SubStepCount = 1;
[Header("基础信息")]
[Tooltip("步骤序号,从 0 开始")]
public int StepIndex;
[Tooltip("步骤名称(内部标识)")]
public string StepName;
[Header("学习模式文案")]
[TextArea(2, 4)]
public string TipText; // 顶部 Tip 提示框文案
[TextArea(2, 4)]
public string DialogueText; // 角色对话气泡文案
[Header("学习模式 - 详细操作说明(甲方补充内容)")]
[TextArea(3, 8)]
public string DetailedContent; // 伤情检查/夹板固定等详细操作须知
[Header("考核模式文案")]
[TextArea(2, 4)]
public string ExamQuestionText; // 考核弹窗题目文案
[Header("考核选项")]
public string[] ExamOptions; // 选择题选项(如 {"5cm", "10cm", "20cm"}
public int CorrectOptionIndex; // 正确选项的索引(-1 表示非选择题)
public string ErrorFeedback; // 答错时的反馈文案
[Header("交互配置")]
public StepCompleteType CompleteType = StepCompleteType.ClickObject;
[Tooltip("交互目标的 Tag(如 InjuryLeg, Shoe, Bandage")]
public string TargetTag;
[Tooltip("考核模式点击顺序(SequenceClick 类型时使用)")]
public string[] ClickSequenceTags;
[Header("额外配置")]
[Tooltip("是否为夹板固定专属步骤")]
public bool IsSplintOnly;
[Tooltip("是否需要播放画中画视频")]
public bool ShowPipVideo;
[Tooltip("画中画视频文件名(StreamingAssets 下)")]
public string VideoFileName;
}