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, UIType uIType, int itemCount = 0) { InitData(itemId, parentObject, itemCount ); _type = uIType; } //现在仅giftcode使用,后面改 public ItemObj(int itemId, GameObject parentObject) { InitData(itemId, parentObject); } public async UniTask Init() { await LoadPrefabTest(); RefreshDetail(); } private async UniTask LoadPrefabTest() { string prefabPath = "Assets/Art/UI/Prefab/MainScene/ShowCharacter/ItemObj.prefab"; GameObject go= await AssetManager.GetSingleton().LoadAssetAsync(prefabPath); if (go == null) { DebugUtil.LogError(""); } _itemGo = UnityEngine.Object.Instantiate(go); _itemGo.transform.SetParent(_parentGo.transform); _itemGo.transform.localPosition = Vector3.zero; _itemGo.transform.localScale = Vector3.one; RefreshDetail(); } private void RefreshDetail() { CommonUtils.GetGameObject(_itemGo, "test2").SetActive(_type == UIType.mail); CommonUtils.GetGameObject(_itemGo, "test1").SetActive(_type == UIType.cultivate); CommonUtils.GetGameObject(_itemGo, "test3").SetActive(_type == UIType.shop); 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(); ; CommonUtils.GetGameObject(_itemGo, "DebugID").SetActive(DisplayIDForCeHua.IsDisplayID); CommonUtils.GetComponent(_itemGo, "DebugID").text = _Id.ToString(); } private void InitData(int itemId,GameObject paObj,int itemCount=0) { _parentGo = paObj; _Id = itemId; count= itemCount; Cfg = TableManager.GetSingleton().Tables.Item.GetOrDefault(itemId); if(Cfg==null) { DebugUtil.LogError("物品表没有配置id为{0}的物品,请检查配置", itemId); } } private void OnClickBtnClick() { if(_action != null) { _action.Invoke(); return; } //下面写物品默认点击事件 } public void RefreshGoods(GameObject itemGo,int itemId) { switch (Cfg.Type) { case ItemType.Normal: break; case ItemType.Character: break; case ItemType.Useable: break; case ItemType.Vehicle: break; } } //相关设置 public void SetScale(float scale) { if (_itemGo == null) { DebugUtil.LogError("itemobj害没生成,调整下顺序呢"); return; } _itemGo.transform.localScale = new Vector3(scale, scale, scale); } public void SetState(interactiveType interType) { switch (interType) { case interactiveType.normail: CommonUtils.GetGameObject(_itemGo, "state/Gray").SetActive(false); break; case interactiveType.selected: break; case interactiveType.gray: CommonUtils.GetGameObject(_itemGo, "state/Gray").SetActive(true); break; } } private void OnIconLoaded(Sprite sprite) { CommonUtils.GetComponent(_itemGo, "test1/icon").sprite= sprite; } }