| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.InputSystem;
- using UnityEngine.UI;
- public class PlayList : MonoBehaviour
- {
- public GameObject[] playListObjects1;
- public GameObject[] playListObjects;
- /// <summary>
- /// 等待时间
- /// </summary>
- private float waitTime;
- /// <summary>
- /// 答案数据
- /// </summary>
- [Header("答案数据")]
- public List<bool> saveData;
- 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<bool>();
- StartCoroutine(StartPlayState2Coroutine(playListObjects1));
- }
- /// <summary>
- /// 播放高级认知提问
- /// </summary>
- public void StartPlayState2()
- {
- gameObject.SetActive(true);
- saveData = new List<bool>();
- StartCoroutine(StartPlayState2Coroutine(playListObjects));
- }
- private IEnumerator StartPlayState2Coroutine(GameObject[] objects)
- {
- for (int i = 0; i < objects.Length; i++)
- {
- yield return StartCoroutine(WaitTime(objects[i]));
- }
- }
- private IEnumerator WaitTime(GameObject obj)
- {
- obj.SetActive(true);
- SelectPrefab selectPrefab = obj.GetComponent<SelectPrefab>();
- if (selectPrefab == null)
- {
- waitTime = obj.GetComponent<AudioSource>().clip.length;
- }
- else
- {
- waitTime = 9999999;
- selectPrefab.SelectPrefabCreateInit((bool value) =>
- {
- saveData.Add(value);
- waitTime = 0;
- });
- }
- while (waitTime > 0)
- {
- waitTime -= Time.deltaTime;
- yield return null;
- }
- obj.SetActive(false);
- }
- }
|