using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; using static LoginSceneUIManager; using System; using Newtonsoft.Json.Linq; using UnityEngine.SceneManagement; using System.Linq; using static CourseTaskItem; using OpenCVForUnity.DnnModule; /// /// 关卡详情面板 /// public class LevelDetailPanel : PanelBasic { /// /// 开始关卡按钮 /// public Button start_level_button; /// /// 关卡编号 /// public TextMeshProUGUI level_index_text; /// /// 关卡标题 /// public TextMeshProUGUI level_name_text; /// /// 组件类型 /// public TextMeshProUGUI level_type_text; /// /// 场景名称 /// public TextMeshProUGUI level_description_text; /// /// 知识点Item预制体 /// public LevelKnowledgeItem level_knowledge_item_prefab; /// /// 知识点Item容器 /// public RectTransform level_knowledge_item_content; /// /// 关卡数据 /// public CourseTaskItem.CourseTaskItemData current_task_data; private List level_knowledge_items_pool = new List(); /// /// 当前关卡对应场景 /// public string scene_name = ""; void Start() { start_level_button.onClick.AddListener(() => { OnStartLevel(current_task_data); }); } public void Init(CourseTaskItem.CourseTaskItemData _task_level_data, int _index) { if (current_task_data == null || current_task_data != _task_level_data) { current_task_data = _task_level_data; level_index_text.text = string.Format("第{0}关", _index); level_name_text.text = current_task_data.taskName; level_type_text.text =current_task_data.contentName; level_description_text.text = _task_level_data.sceneName; scene_name= _task_level_data.sceneName; //考察点 level_knowledge_items_pool.ForEach(x => x.is_used = false); for (int i = 0; i < current_task_data.investigatePointList.Count; i++) { var _item = Get(i); _item.Init(current_task_data.investigatePointList[i]); } level_knowledge_items_pool.ForEach(x => x.UpdateState()); } current_task_data = _task_level_data; } public void OnStartLevel(CourseTaskItemData courseTaskItemData) { GameManager.current_main_menu_type = MainMenuType.课程任务; //获取recordid string url = InterfaceManager.IdAddress + ":8080/postback/getTaskRecordId?contentId="+ courseTaskItemData.contentId + "&courseId="+ courseTaskItemData .courseId+ "&userId="+CallForTest.instance.user.userId+"&taskId="+ courseTaskItemData.taskId; StartCoroutine(InterfaceManager.Get(url, (result, msg) => { if (result) { JObject jb = JObject.Parse(msg); CallForTest.instance.recordId=jb["data"]["id"].ToString(); //获取任务详情,双击启动程序,手动选择任务并启动 CallForTest.instance.GetTaskDetail(courseTaskItemData.taskId, courseTaskItemData.contentId, courseTaskItemData.programLanguage); } else { Debug.LogError(msg); } })); } /// /// 关卡知识点 对象管理 /// /// /// public LevelKnowledgeItem Get(int _index) { LevelKnowledgeItem _item; if (level_knowledge_items_pool.Count > _index) { _item = level_knowledge_items_pool[_index]; } else { if (level_knowledge_item_prefab == null) level_knowledge_item_prefab = Resources.Load("Prefabs/UIItem/LevelKnowledgeItem"); _item = Instantiate(level_knowledge_item_prefab, level_knowledge_item_content); level_knowledge_items_pool.Add(_item); } _item.is_used = true; return _item; } }