using cfg.ActorCfg; using cfg.item; using Cysharp.Threading.Tasks; using Framework; using Gameplay; using PhxhSDK; using System; using TMPro; using UnityEngine; using UnityEngine.UI; public class ItemObj { GameObject _parentGo; Action _action;//用来做点击事件 int _Id; GameObject _itemGo; DataItem Cfg; Button clickBtn; UIType _type; int count=0; public enum interactiveType { normail, selected, gray, } public enum UIType//测试,正式美术图出来没这个事了,烦死了 { cultivate, mail, shop, } public ItemObj(int itemId, GameObject parentObject,Action click=null) { if(click!=null) { _action = click; } InitData(itemId, parentObject); } public async UniTask Init() { await LoadPrefab(); } public ItemObj(int itemId, GameObject parentObject, UIType uIType,int itemCount=0)//美术出图前暂用 { InitData(itemId, itemCount,parentObject); _type = uIType; LoadPrefabTest(); } private void LoadPrefabTest() { string prefabPath = "Assets/Art/UI/Prefab/MainScene/ShowCharacter/ItemObj.prefab"; AssetManager.GetSingleton().LoadAssetOnCallBack(prefabPath, OnPrefabLoadedTest); } private void OnPrefabLoadedTest(GameObject @object) { _itemGo = UnityEngine.Object.Instantiate(@object); _itemGo.transform.SetParent(_parentGo.transform); _itemGo.transform.localPosition = Vector3.zero; _itemGo.transform.localScale = Vector3.one; switch (_type) { case UIType.mail: CommonUtils.GetGameObject(_itemGo, "test2").SetActive(true); break; case UIType.cultivate: CommonUtils.GetGameObject(_itemGo, "test1").SetActive(true); break; case UIType.shop: CommonUtils.GetGameObject(_itemGo, "test3").SetActive(true); break; } CommonUtils.GetComponent(_itemGo, "test2/icon/Text_StuffNum").text = count.ToString(); ; CommonUtils.GetComponent(_itemGo, "test2/icon/Text_StuffNum").text = count.ToString(); ; CommonUtils.GetComponent(_itemGo, "test3/Image_Bar/Text_ItemNum").text = count.ToString(); ; } private void InitData(int itemId,GameObject paObj) { _parentGo = paObj; _Id = itemId; Cfg = TableManager.GetSingleton().Tables.Item.GetOrDefault(itemId); if(Cfg==null) { DebugUtil.LogError("物品表没有配置id为{0}的物品,请检查配置", itemId); } } private void InitData(int itemId, int itemCount,GameObject paObj) { _parentGo = paObj; _Id = itemId; count = itemCount; Cfg = TableManager.GetSingleton().Tables.Item.GetOrDefault(itemId); if (Cfg == null) { DebugUtil.LogError("物品表没有配置id为{0}的物品,请检查配置", itemId); } } private async UniTask LoadPrefab() { string prefabPath = "Assets/Art/UI/Prefab/MainScene/ShowCharacter/ItemObj.prefab"; GameObject obj= await AssetManager.GetSingleton().LoadAssetAsync(prefabPath); if(obj==null) { DebugUtil.LogError(""); } _itemGo = UnityEngine.Object.Instantiate(obj); _itemGo.transform.SetParent(_parentGo.transform); _itemGo.transform.localPosition = Vector3.zero; _itemGo.transform.localScale = Vector3.one; clickBtn = CommonUtils.GetComponent