using Thousandto.Code.Center; using Thousandto.Code.Global; /// /// 物品component组件,用于显示消耗物品显示 /// using Thousandto.Core.Base; using Thousandto.GameUI.Form; using UnityEngine; namespace Thousandto.Plugins.Common { //描述的属性信息 public class DescItemInfo { public int ItemID { get; set; } public long Num { get; set; } public bool IsBind { get; set; } } //属性组件 public class UIItemComponent : IUIComponent { private Transform _trans; private UIItem _item; private DescItemInfo _data; public UIItemComponent(Transform trans) { _trans = trans; _item = _trans.RequireComponent(); SetActive(false); } public UIItemComponent Clone() { var newGo = GameObject.Instantiate(_trans.gameObject) as GameObject; var ep = new UIItemComponent(newGo.transform); ep._trans.parent = _trans.parent; UnityUtils.Reset(ep._trans); return ep; } public void SetActive(bool active) { _trans.gameObject.SetActive(active); } public void SetData(DescItemInfo data) { _data = data; RefreshData(); } public void SetName(string name) { _trans.name = name; } public void RefreshData() { if (_data != null) { _trans.gameObject.SetActive(true); _item.InitializationWithIdAndNum(_data.ItemID, _data.Num, _data.IsBind); } } public Transform GetTrans() { return _trans; } /// /// 根据背包数量设置数量显示 /// public void OnSetNumByBack() { if(_data != null) { long haveCont = GameCenter.ItemContianerSystem.GetItemCountFromCfgId(_data.ItemID); _item.OnSetNum(string.Format("{0}/{1}", haveCont, _data.Num)); if(haveCont < _data.Num) { _item.OnSetNumColor(Color.red); } else { _item.OnSetNumColor(Color.green); } } } } }