using System; using System.Collections.Generic; using Cysharp.Threading.Tasks; using Newtonsoft.Json; using TMPro; using UnityEditor; using UnityEngine; using UnityEngine.UI; using ZC.Item; namespace ZC { [UIType(UIType.TaskListUI)] public class TaskListUI : UIBase { private Toggle tog_Item; // private TaskListDatas ListDatas; // List _listData = new List(); Dictionary items = new Dictionary(); public override void Init() { base.Init(); this.tog_Item = GetValue("tog_Item"); // TODO: // ListDatas = ZCGame // ListDatas = ResourcesLocalComponent.Instance.LoadAssetSync(AssetConst.Assets_DemoGame_GameRes_Config_TaskListData_asset); InitItem().Forget(); } public void SetItemState(string itemName, TaskListType state) { if (items.TryGetValue(itemName, out TaskListItem item)) { item.SetState(state); } } async UniTask InitItem() { List list = new List() { "1.老年人健康评估", "1.1基本资料采集", "1.2体格检查", "1.3功能评估", "1.4心理评估", "2.康复计划制定", "2.1确定康复目标", "2.2选择康复方法和技术", "2.3制定康复计划", "2.4监控和调整康复计划", "3.康复治疗实施", "3.1确定康复目标", "3.2选择康复方法和技术", "3.3制定康复计划", "3.4监控和调整康复计划", }; foreach (var str in list) { await GenItem(str, TaskListType.待完成); } SetItemState("1.老年人健康评估", TaskListType.进行中); SetItemState("1.1基本资料采集", TaskListType.当前任务); } async UniTask GenItem(string itemName, TaskListType state) { this.tog_Item.gameObject.SetActive(false); var go = GameObject.Instantiate(this.tog_Item.gameObject, this.tog_Item.transform.parent); go.SetActive(true); var taskListItem = go.AddComponent(); await taskListItem.SetDataAsync(itemName, state); items.Add(itemName, taskListItem); } } class TaskItemData { public enum TaskItemDataType { 待完成, 进行中, 当前任务, 已完成, } public string name; public TaskItemDataType type; } }