首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Unity SKFramework框架(十三)、Question 问题模块

  • 25-03-03 17:01
  • 3857
  • 13545
blog.csdn.net

目录

一、Questions Profile 问题配置文件

1.配置文件的创建

2.配置文件的编辑

二、Questions Handler 问题处理器

1.初始化

2.Last、Next、Switch

3.根据题号获取指定的问题

三、Example 示例


一、Questions Profile 问题配置文件

1.配置文件的创建

通过右键/Create/Question Profile菜单进行创建

2.配置文件的编辑

如图所示,模块中内置了五种题型,可以在配置文件中进行配置,分别是判断题、单选题、多选题、填空题、论述题,它们均继承自Question Base基类。

1).判断题

2).单选题

3).多选题

4).填空题

5).论述题

二、Questions Handler 问题处理器

1.初始化

QuestionsHandler包含两个构造函数

  1. ///
  2. /// 构造函数
  3. ///
  4. /// 问题配置文件
  5. public QuestionsHandler(QuestionsProfile profile)
  6. ///
  7. /// 构造函数
  8. ///
  9. /// 配置文件的路径
  10. public QuestionsHandler(string resourcesPath)

2.Last、Next、Switch

  1. ///
  2. /// 上一题
  3. ///
  4. public QuestionBase Last()
  5. ///
  6. /// 下一题
  7. ///
  8. public QuestionBase Next()
  9. ///
  10. /// 根据题号切换到指定问题
  11. ///
  12. /// 题号
  13. public QuestionBase Switch(int sequence)

3.根据题号获取指定的问题

  1. ///
  2. /// 根据题号获取问题
  3. ///
  4. /// 题型
  5. /// 题号
  6. public T Get<T>(int sequence) where T : QuestionBase

三、Example 示例

  1. using UnityEngine;
  2. using SK.Framework;
  3. public class Example : MonoBehaviour
  4. {
  5. private QuestionsHandler handler;
  6. private QuestionBase question;
  7. private void Start()
  8. {
  9. handler = new QuestionsHandler("New Questions Profile");
  10. }
  11. private void OnGUI()
  12. {
  13. GUILayout.BeginHorizontal();
  14. if (GUILayout.Button("Last", GUILayout.Width(200f), GUILayout.Height(50f)))
  15. question = handler.Last();
  16. if (GUILayout.Button("Next", GUILayout.Width(200f), GUILayout.Height(50f)))
  17. question = handler.Next();
  18. GUILayout.EndHorizontal();
  19. if (question == null) return;
  20. switch (question.Type)
  21. {
  22. case QuestionType.JUDGE: break;
  23. case QuestionType.SINGLE_CHOICE:
  24. GUILayout.Label(string.Format(" {0}.{1}", question.Sequence, question.Question));
  25. GUILayout.BeginHorizontal();
  26. if (GUILayout.Button("A")) Debug.Log(question.IsCorrect(0));
  27. if (GUILayout.Button("B")) Debug.Log(question.IsCorrect(1));
  28. if (GUILayout.Button("C")) Debug.Log(question.IsCorrect(2));
  29. if (GUILayout.Button("D")) Debug.Log(question.IsCorrect(3));
  30. GUILayout.EndHorizontal();
  31. break;
  32. case QuestionType.MULTIPLE_CHOICE: break;
  33. case QuestionType.COMPLETION: break;
  34. case QuestionType.ESSAY: break;
  35. default: break;
  36. }
  37. }
  38. }

当代野生程序猿
微信公众号
Unity开发日志分享,欢迎关注/留言/私信。
注:本文转载自blog.csdn.net的CoderZ1010的文章"https://blog.csdn.net/qq_42139931/article/details/125045409"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top