/// #pkgName FGUI包名 /// #panelName UIPanel名字 /// #UIName = $"{#pkgName}{#panelName}" UIKey名字 /// 该脚本由模板创建 /// created by cb 2024 using FairyGUI; using FL.Data.Items; using XGame; using XGame.Database; using XGame.Framework.UI; namespace FL.FGUI { public class UiParam { public bool bShowName; public bool bShowCount; public bool bShowBtn; // 是否可点击 public bool bShowMask; public bool bShowLevel; } /// /// UI逻辑处理类 /// /// public partial class CommonItemBaseCtrl : UIController { private IItem data; protected override void OnEnable(object intent) { AddUIListenres(); } protected override void OnDisable() { RemoveUIListenres(); } #region UI事件 private void AddUIListenres() { if (VM.ItemBtn != null) { VM.ItemBtn.onClick.Add(OnClickBtn); } } private void RemoveUIListenres() { if (VM.ItemBtn != null) { VM.ItemBtn.onClick.Remove(OnClickBtn); } } #endregion private void OnClickBtn(EventContext context) { if (data == null) { return; } else if (data?.ItemType == EItemType.Equip) { var _uiParam = new EquipParam(); _uiParam.id = data.Id; _uiParam.equipType = (data as EquipItem).Table.Part; Context.UI.OpenAsync(UIKeys.DragonEggEquip, _uiParam); } else { Log.Debug($"显示道具:{data.Name}详情界面"); } } /// /// UI显示数据 /// /// /// private Item GetItemUIData(int id) { ItemTable _itemTable = ItemTableRepo.Get(id);// 模拟 Item _item = new Item(); _item.Init(_itemTable, UIDDefine.New()); return _item; } public void ShowUI(IItem item, UiParam uiParam) { data = item; if (VM.QualityImg != null) { VM.QualityImg.icon = AddressableDefine.ItemFrame(item.Quality); } if (VM.ItemIcon != null) { VM.ItemIcon.icon = item.Icon; } if (VM.NameLabel != null) { VM.NameLabel.visible = uiParam.bShowName; if (uiParam.bShowName) { VM.NameLabel.text = item.Name; } } if (VM.LvLabel != null) { VM.NameLabel.visible = uiParam.bShowLevel; if (uiParam.bShowLevel) { VM.LvLabel.text = $"lv.{item.Level}"; } } if (VM.CountLabel != null) { VM.CountLabel.visible = uiParam.bShowCount; if (uiParam.bShowCount) { VM.CountLabel.text = item.Count; } } if (VM.MaskImg != null) { VM.MaskImg.visible = uiParam.bShowMask; } if (VM.ItemBtn != null) { VM.ItemBtn.visible = uiParam.bShowBtn; } } /// /// 模拟的道具数据展示 /// /// public void ShowAnalogData(int tableId, UiParam _uiParam) { ShowUI(GetItemUIData(tableId), _uiParam); } } }