/// #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; public bool bShowBaseInfo; // 点击道具是否只显示物品简易信息 } /// /// UI逻辑处理类 /// /// public partial class CommonItemBaseCtrl : UIController { private IItem data; private bool bShowBaseInfo; 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 (bShowBaseInfo) { ShowItemInfoPanel(); } else if (data?.ItemType == EItemType.Equip) { Context.UI.OpenAsync(UIKeys.EquipEquipPanel, data); } else { ShowItemInfoPanel(); } } private void ShowItemInfoPanel() { Log.Debug($"显示道具:{data.Name}详情界面"); Context.UI.OpenAsync(UIKeys.ItemInformationPanel, new ItemInfoParam { itemInfo = ItemTableRepo.Get(data.TableId), numDesc = data?.ItemType == EItemType.Equip ? $"LV.{data.Level}" : (int.Parse(data.Count) > 1 ? data.Count : null), }); } public void ShowUI(IItem item, UiParam uiParam) { data = item; bShowBaseInfo = uiParam.bShowBaseInfo; 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.LvLabel.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; } } } }