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; }
}
}