using System; using System.Collections.Generic; using UnityEngine; using Newtonsoft.Json; namespace DefaultNamespace.ProcessMode { /// /// 流程步骤数据 /// [Serializable] public class ProcessStepDto { /// /// 步骤描述,说明当前步骤的主要内容和目的 /// [JsonProperty("StepDescription")] public string StepDescription { get; set; } /// /// 步骤中包含的所有动作列表 /// [JsonProperty("Actions")] public List Actions { get; set; } /// /// 步骤是否已完成 /// [JsonProperty("IsCompleted")] public bool IsCompleted { get; set; } /// /// 步骤编号,用于标识步骤的顺序 /// [JsonProperty("StepNumber")] public int StepNumber { get; set; } /// /// 步骤得分 /// [JsonProperty("Score")] public double Score { get; set; } } /// /// 流程动作数据 /// [Serializable] public class ProcessAction { /// /// 动作类型:0-点击物体,1-判断题,2-多选题 /// [JsonProperty("ActionType")] public int ActionType { get; set; } /// /// 判断题列表,包含多个判断题及其答案和分数 /// [JsonProperty("JudgmentQuestions")] public List JudgmentQuestions { get; set; } /// /// 多选题列表,包含多个多选题及其选项、答案和分数 /// [JsonProperty("MultipleChoiceQuestions")] public List MultipleChoiceQuestions { get; set; } /// /// 动作标题,用于显示在界面上 /// [JsonProperty("Title")] public string Title { get; set; } /// /// 目标物体列表,包含需要交互的物体信息 /// [JsonProperty("TargetObjects")] public List TargetObjects { get; set; } /// /// 动作描述,说明具体的操作要求 /// [JsonProperty("Action")] public string Action { get; set; } /// /// 动作的详细描述,包含更多操作细节 /// [JsonProperty("Description")] public string Description { get; set; } /// /// 是否按顺序执行,true表示必须按顺序完成所有目标物体 /// [JsonProperty("IsSequential")] public bool IsSequential { get; set; } /// /// 已点击的物体列表,记录用户已交互过的物体 /// [JsonProperty("ClickedObjects")] public List ClickedObjects { get; set; } /// /// 当前目标物体的索引,用于顺序执行时追踪进度 /// [JsonProperty("CurrentObjectIndex")] public int CurrentObjectIndex { get; set; } /// /// 是否已显示反馈信息 /// [JsonProperty("FeedbackDisplayed")] public bool FeedbackDisplayed { get; set; } /// /// 步骤描述,与ProcessStep中的StepDescription相同 /// [JsonProperty("StepDescription")] public string StepDescription { get; set; } /// /// 动作的分数,完成该动作可获得的分值 /// [JsonProperty("Score")] public double Score { get; set; } /// /// 场景名称,如果需要切换场景则指定目标场景名 /// [JsonProperty("SceneName")] public string SceneName { get; set; } /// /// 是否需要切换场景 /// [JsonProperty("RequiresSceneSwitch")] public bool RequiresSceneSwitch { get; set; } /// /// 目标物体事件字典,记录每个目标物体需要触发的事件 /// [JsonProperty("TargetObjectEvents")] public Dictionary TargetObjectEvents { get; set; } /// /// 流程步骤索引,标识当前动作属于哪个步骤 /// [JsonProperty("ProcessStepIndex")] public int ProcessStepIndex { get; set; } /// /// 是否需要正确完成,true表示必须完全正确才能通过 /// [JsonProperty("RequireCorrectCompletion")] public bool RequireCorrectCompletion { get; set; } } /// /// 判断题数据 /// [Serializable] public class JudgmentQuestion { /// /// 问题内容,描述需要判断的具体问题 /// [JsonProperty("Question")] public string Question { get; set; } /// /// 正确答案,用户需要输入的正确内容 /// [JsonProperty("CorrectAnswer")] public string CorrectAnswer { get; set; } /// /// 问题分值,答对可获得的分值 /// [JsonProperty("Score")] public double Score { get; set; } } /// /// 多选题数据 /// [Serializable] public class MultipleChoiceQuestion { /// /// 问题内容,描述需要选择的具体问题 /// [JsonProperty("Question")] public string Question { get; set; } /// /// 选项列表,包含所有可供选择的答案选项 /// [JsonProperty("Options")] public List Options { get; set; } /// /// 正确答案列表,包含所有正确的选项 /// [JsonProperty("CorrectAnswers")] public List CorrectAnswers { get; set; } /// /// 问题分值,答对可获得的分值 /// [JsonProperty("Score")] public double Score { get; set; } } /// /// 目标物体数据 /// [Serializable] public class TargetObject { /// /// 物体名称,用于在场景中识别物体 /// [JsonProperty("ObjectName")] public string ObjectName { get; set; } /// /// 物体类型,用于区分不同种类的物体 /// [JsonProperty("Type")] public int Type { get; set; } /// /// 物体分值,与该物体交互可获得的分值 /// [JsonProperty("Score")] public double Score { get; set; } } }