| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.InputSystem;
- using UnityEngine.UI;
- using System;
- public class PlayList : MonoBehaviour
- {
- public GameObject skipButton;
- public GameObject[] playListObjects1;
- public GameObject[] playListObjects;
- /// <summary>
- /// 等待时间
- /// </summary>
- private float waitTime;
- /// <summary>
- /// 答案数据
- /// </summary>
- [Header("答案数据")]
- public List<QuestionData> saveData;
- public UpData upData;
- private void Awake()
- {
- DateTime now = DateTime.Now;
- DateTime startTime = new DateTime(2024, 1, 30);
- Debug.Log(startTime.Subtract(now).Days);
- }
- private void Start()
- {
- //StartPlayState2();
- }
- /// <summary>
- /// 跳过
- /// </summary>
- public void Skip()
- {
- waitTime = 0.5f;
- }
- /// <summary>
- /// 停止并退出当前课程
- /// </summary>
- public void StopAll()
- {
- StopAllCoroutines();
- for (int i = 0; i < playListObjects1.Length; i++)
- {
- playListObjects1[i].gameObject.SetActive(false);
- }
- for (int i = 0; i < playListObjects.Length; i++)
- {
- playListObjects[i].gameObject.SetActive(false);
- }
- gameObject.SetActive(false);
- }
- /// <summary>
- /// 播放课堂行为管理
- /// </summary>
- public void StartPlayState1()
- {
- gameObject.SetActive(true);
- saveData = new List<QuestionData>();
- StartCoroutine(StartPlayState2Coroutine(playListObjects1, 1));
- }
- /// <summary>
- /// 播放高级认知提问
- /// </summary>
- public void StartPlayState2()
- {
- gameObject.SetActive(true);
- saveData = new List<QuestionData>();
- StartCoroutine(StartPlayState2Coroutine(playListObjects, 2));
- }
- private IEnumerator StartPlayState2Coroutine(GameObject[] objects, int state)
- {
- for (int i = 0; i < objects.Length; i++)
- {
- yield return StartCoroutine(WaitTime(objects[i]));
- }
- upData.Init(saveData, state);
- Debug.Log("完成");
- StopAll();
- }
- private IEnumerator WaitTime(GameObject obj)
- {
- obj.SetActive(true);
- SelectPrefab selectPrefab = obj.GetComponent<SelectPrefab>();
- if (selectPrefab == null)
- {
- skipButton.SetActive(true);
- waitTime = obj.GetComponent<AudioSource>().clip.length + 1;
- }
- else
- {
- skipButton.SetActive(false);
- waitTime = 9999999;
- selectPrefab.SelectPrefabCreateInit((QuestionData value) =>
- {
- if (value.isUpData)
- {
- saveData.Add(value);
- }
- waitTime = 0;
- });
- }
- while (waitTime > 0)
- {
- waitTime -= Time.deltaTime;
- yield return null;
- }
- obj.SetActive(false);
- }
- }
- /// <summary>
- /// 题目数据
- /// </summary>
- [Serializable]
- public class QuestionData
- {
- /// <summary>
- /// 文本
- /// </summary>
- public string text;
- /// <summary>
- /// 选择的题号
- /// </summary>
- public string selectIndex;
- public bool isRight;
- /// <summary>
- /// 是否需要上传
- /// </summary>
- public bool isUpData;
- }
|