using Assets.Framework.Tool; using Assets.MyGame.Scripts.Net; using Assets.MyGame.Scripts.Net.API.UserData_SubClass; using System.Collections; using System.Collections.Generic; using TMPro; using Unity.VisualScripting; using UnityEditor.SearchService; using UnityEngine; using UnityEngine.UI; using static UnityEditor.MaterialProperty; public class UIHome_BY_BackPackPanel : SubUIBase { public List props; public Dictionary propsID_Dic = new Dictionary(); public Dictionary propsObjHashCode_Dic = new Dictionary(); public Transform pageParent; public BackPackPropItem prefabItem; public TextMeshProUGUI tMP_Gold; public TextMeshProUGUI tMP_Diamond; [Header("道具详情")] public TextMeshProUGUI tMP_Name; public TextMeshProUGUI tMP_Description; public Image img_Prop; public string propID; //这里是道具的ID 之后用来触发使用事件 public PropEnum propType; //这里是道具的类型 之后用来触发使用事件 public ScrollRect scrollRect; public Button btn_Use; public override void Awake() { base.Awake(); } protected override void OnShow(object args = null) { base.OnShow(args); tMP_Gold.text= GameManager.Instance.user.assets.gold.ToString(); tMP_Diamond.text= GameManager.Instance.user.assets.diamond.ToString(); props = GameManager.Instance.user.props; foreach (BaseProductCount product in props) { propsID_Dic[product.number]=product; if (product.count<=0) { propsID_Dic.Remove(product.number); } } for (int j = pageParent.childCount-1; j >=0 ; j--) { Destroy(pageParent.GetChild(j).gameObject); } bool isfirst = true; foreach (BaseProductCount product in propsID_Dic.Values) { if (isfirst) { tMP_Name.text = product.name; tMP_Description.text = product.desc; propID = product.number; WebTool.DownImage(APIManager.baseURL + product.imageUrl, (texture) => { img_Prop.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.one * 0.5f); }); isfirst = false; btn_Use.onClick.RemoveAllListeners(); btn_Use.onClick.AddListener(() => { switch (propType) { case PropEnum.none: break; case PropEnum.炮塔碎片: break; case PropEnum.翅膀碎片: break; case PropEnum.战神碎片: break; case PropEnum.刮刮卡: uIManager.ShowAsync(UIPanel.GuaGuaKa); break; case PropEnum.改名卡: break; case PropEnum.大喇叭: break; case PropEnum.技能: break; case PropEnum.召唤卡: break; default: break; } }); } GameObject obj = Instantiate(prefabItem.gameObject, pageParent); var tempItem = obj.GetComponent(); tempItem.Init(APIManager.baseURL + product.imageUrl, product.count, (PropEnum)product.type); propsObjHashCode_Dic[obj.GetHashCode()] = product; //不记得干什么用了 obj.GetComponent().onValueChanged.AddListener((value) => { if (value) { tMP_Name.text=product.name; tMP_Description.text = product.desc; propID = product.number; propType=(PropEnum)product.type; WebTool.DownImage(APIManager.baseURL + product.imageUrl, (texture) => { img_Prop.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.one * 0.5f); }); btn_Use.onClick.RemoveAllListeners(); btn_Use.onClick.AddListener(() => { switch (propType) { case PropEnum.none: break; case PropEnum.炮塔碎片: break; case PropEnum.翅膀碎片: break; case PropEnum.战神碎片: break; case PropEnum.刮刮卡: uIManager.ShowAsync(UIPanel.GuaGuaKa); break; case PropEnum.改名卡: break; case PropEnum.大喇叭: break; case PropEnum.技能: break; case PropEnum.召唤卡: break; default: break; } }); } }); } } }