/// #pkgName FGUI包名 /// #panelName UIPanel名字 /// #UIName = $"{#pkgName}{#panelName}" UIKey名字 /// 该脚本由模板创建 /// created by cb 2024 using FairyGUI; using FL.Data.Items; using FL.Data; using XGame.Framework.UI; namespace FL.FGUI { /// /// UI逻辑处理类 /// /// public partial class EquipEquipPanelCtrl : UIController { private EquipAttr _newEquip; private EquipAttr _wearEquip; protected override void OnEnable(object intent) { AddUIListenres(); ShowUI(intent as EquipItemBase); } protected override void OnDisable() { _newEquip = null; _wearEquip = null; RemoveUIListenres(); } #region UI事件 private void AddUIListenres() { VM.WearBtn.onClick.Add(OnClickWearBtn); } private void RemoveUIListenres() { VM.WearBtn.onClick.Remove(OnClickWearBtn); } #endregion /// /// 穿戴|替换按钮事件 /// /// private void OnClickWearBtn(EventContext context) { if (_newEquip == null) return; EquipData.Instance.BubblingEquipUid = 0; DragonEggService.Instance.OnChangeEquip(_newEquip.Id); ClosePanel(); } private void ClosePanel() { Context.ClosePanel(); } private void ShowUI(EquipItemBase equipBase) { if (equipBase == null) return; _wearEquip = EquipData.Instance.GetWearEquipData(equipBase.EquipType); if (_wearEquip != null) { ShowEquipInfo(_wearEquip); VM.WearEquipItem.Disable(); } if (equipBase.Id == 0) // 身上穿戴的装备 { return; } _newEquip = EquipData.Instance.GetBagEquipItem(equipBase.Id); if (_newEquip == null) return; bool bShowWear = _wearEquip != null; if (bShowWear) { VM.WearEquipItem.Enable(null); VM.WearEquipItem.Ctrl.ShowUI(_newEquip, _wearEquip, true); } else { VM.WearEquipItem.Disable(); } VM.NewEquipItem.Ctrl.ShowUI(_newEquip, _wearEquip); ShowBtnUI(bShowWear); } private void ShowBtnUI(bool bWear) { VM.BtnState.selectedIndex = bWear ? 1 : 2; // 1_替换 2_穿戴 } private void ShowEquipInfo(EquipAttr equip) { // 展示装备属性详情,不显示按钮 VM.BtnState.selectedIndex = 0; VM.NewEquipItem.Ctrl.ShowUI(equip, equip, true); } } }