ict.shenzhi/Assets/Scripts/UIManager/Panel/CaseCenterPanel.cs

150 lines
4.4 KiB
C#

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
using UnityEngineInternal;
using static InterfaceManager;
/// <summary>
/// 案例中心面板
/// </summary>
public class CaseCenterPanel : PanelBasic
{
public static CaseCenterPanel instance;
/// <summary>
/// 实例root
/// </summary>
Transform case_item_content;
/// <summary>
/// 案例预制体
/// </summary>
CaseItem case_item_prefab;
/// <summary>
/// 案例中心返回按钮
/// </summary>
Button case_center_back_button;
/// <summary>
/// 案例列表
/// </summary>
public List<CaseItem> case_items = new List<CaseItem>();
/// <summary>
/// 案例详情面板
/// </summary>
public CaseDetailPanel detailPanel;
/// <summary>
/// 无人机_选中
/// </summary>
public Sprite _选中;
/// <summary>
/// 无人机_显示
/// </summary>
public Sprite _显示;
/// <summary>
/// 机器人_显示
/// </summary>
public Sprite _显示;
/// <summary>
/// 机器人_选中
/// </summary>
public Sprite _选中;
/// <summary>
/// 数字人_选中
/// </summary>
public Sprite _选中;
/// <summary>
/// 数字人_显示
/// </summary>
public Sprite _显示;
protected override void Awake()
{
base.Awake();
instance = this;
}
protected override void OnEnable()
{
base.OnEnable();
Init();
}
void Init()
{
detailPanel.gameObject.SetActive(false);
case_center_back_button.onClick.AddListener(OnCaseCenterBack);
if (case_item_prefab == null) case_item_prefab = Resources.Load<CaseItem>("Prefabs/UIItem/CaseItem");
//死的加载配置能文件
//StartCoroutine(Get(Path.Combine(Application.streamingAssetsPath, "LocalConfig/Cases.txt"), (_data) =>
//{
// var _case_item_datas = JsonConvert.DeserializeObject<CaseItem.CaseItemData[]>(_data);
// for (int i = 0; i < _case_item_datas.Length; i++)
// {
// var _case_item = Instantiate(case_item_prefab, case_item_content);
// _case_item.Init(_case_item_datas[i]);
// case_items.Add(_case_item);
// }
//}));
//清除item
case_items.ForEach(a =>
{
Destroy(a.gameObject);
});
case_items.Clear();
string url = InterfaceManager.IdAddress + ":8080/component/task/case/list?taskType=1";
StartCoroutine(InterfaceManager.Get(url, (isok, result) =>
{
if (isok)
{
JObject jo = JObject.Parse(result);
Debug.Log(jo);
CaseData[] _case_item_datas = jo["data"].ToObject<CaseData[]>();
for (int i = 0; i < _case_item_datas.Length; i++)
{
Debug.Log("加载了" + _case_item_datas[i].sceneName + "模块");
var _case_item = Instantiate(case_item_prefab, case_item_content);
//自己添加的修改显示图片的方法
switch (_case_item_datas[i].sceneName)
{
case "机器人舞台":
_case_item.GetComponent<CaseItem>().Picture_显示 = _显示;
_case_item.GetComponent<CaseItem>().Picture_选中 = _选中;
break;
case "深圳市民中心":
_case_item.GetComponent<CaseItem>().Picture_显示 = _显示;
_case_item.GetComponent<CaseItem>().Picture_选中 = _选中;
break;
case "数字人舞台":
_case_item.GetComponent<CaseItem>().Picture_显示 = _显示;
_case_item.GetComponent<CaseItem>().Picture_选中 = _选中;
break;
}
_case_item.Init(_case_item_datas[i]);
case_items.Add(_case_item);
}
}
else
{
Debug.LogError(result);
}
}));
}
/// <summary>
/// 案例中心返回
/// </summary>
public void OnCaseCenterBack()
{
OnNagetive(true);
}
}