Browse Source

职业技能信息界面修改

zhenglijun 2 days ago
parent
commit
8fbc34616d
19 changed files with 351 additions and 177 deletions
  1. BIN
      Assets/Res/Addressable/FGUI/Player/Player_atlas0.png
  2. BIN
      Assets/Res/Addressable/FGUI/Player/Player_fui.bytes
  3. 8 0
      Assets/Scripts/Business/Runtime/FGUI/Player/JobInfoSkillNested.meta
  4. 166 0
      Assets/Scripts/Business/Runtime/FGUI/Player/JobInfoSkillNested/PlayerJobInfoSkillNestedCtrl.cs
  5. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/JobInfoSkillNested/PlayerJobInfoSkillNestedCtrl.cs.meta
  6. 53 0
      Assets/Scripts/Business/Runtime/FGUI/Player/JobInfoSkillNested/PlayerJobInfoSkillNestedVM.Gen.cs
  7. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/JobInfoSkillNested/PlayerJobInfoSkillNestedVM.Gen.cs.meta
  8. 23 0
      Assets/Scripts/Business/Runtime/FGUI/Player/JobInfoSkillNested/PlayerJobInfoSkillNestedView.cs
  9. 11 0
      Assets/Scripts/Business/Runtime/FGUI/Player/JobInfoSkillNested/PlayerJobInfoSkillNestedView.cs.meta
  10. 3 119
      Assets/Scripts/Business/Runtime/FGUI/Player/JobInformationPanel/PlayerJobInformationPanelCtrl.cs
  11. 3 26
      Assets/Scripts/Business/Runtime/FGUI/Player/JobInformationPanel/PlayerJobInformationPanelVM.Gen.cs
  12. 2 2
      Assets/Scripts/Business/Runtime/FGUI/Player/JobInformationPanel/PlayerJobInformationPanelView.cs
  13. 21 17
      Assets/Scripts/Business/Runtime/FGUI/Player/JokSkillNested/PlayerJokSkillNestedCtrl.cs
  14. 0 2
      Assets/Scripts/Business/Runtime/FGUI/Player/JokSkillNested/PlayerJokSkillNestedVM.Gen.cs
  15. 24 3
      Assets/Scripts/Business/Runtime/FGUI/Player/MainPanel/PlayerMainPanelCtrl.cs
  16. 3 5
      Assets/Scripts/Business/Runtime/FGUI/Player/MainPanel/PlayerMainPanelVM.Gen.cs
  17. 9 0
      Assets/Scripts/Business/Runtime/FGUI/Player/SkillInfoNested/PlayerSkillInfoNestedCtrl.cs
  18. 1 1
      Assets/Scripts/Business/Runtime/FGUI/Player/TransferPanel/PlayerTransferPanelView.cs
  19. 2 2
      Assets/Scripts/Business/Runtime/FGUI/Player/TransferSucessPanel/PlayerTransferSucessPanelView.cs

BIN
Assets/Res/Addressable/FGUI/Player/Player_atlas0.png


BIN
Assets/Res/Addressable/FGUI/Player/Player_fui.bytes


+ 8 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/JobInfoSkillNested.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: XSkWsCn7Bn83mfgYz4jPBF45uRq/8d2ezyM2bb7bx98jWtA75H6Vxzk=
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 166 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/JobInfoSkillNested/PlayerJobInfoSkillNestedCtrl.cs

@@ -0,0 +1,166 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using FairyGUI;
+using FL.Data;
+using System.Collections.Generic;
+using XGame.Database;
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    /// <summary>
+    /// UI逻辑处理类
+    /// </summary>
+    /// <typeparam name=""></typeparam>
+    public partial class PlayerJobInfoSkillNestedCtrl : UIController<PlayerJobInfoSkillNestedVM>
+    {
+        private bool _bHideSkillInfo; // 是否需要隐藏技能信息气泡
+        private List<JobSkillParam> _passiveSkillDataArray;
+
+        protected override void OnEnable(object intent)
+        {
+            AddUIListenres();
+        }
+        protected override void OnDisable()
+        {
+            RemoveUIListenres();
+            _passiveSkillDataArray?.Clear();
+            _passiveSkillDataArray = null;
+        }
+        #region UI事件
+        private void AddUIListenres()
+        {
+            VM.BackBtn.onClick.Add(OnClickBackBtn);
+            VM.PanelEvent.Add(OnCllickPanel);
+            VM.PassiveSkillList.ItemClickEvent += OnClickPassiveSkillItem;
+
+        }
+        private void RemoveUIListenres()
+        {
+            VM.BackBtn.onClick.Remove(OnClickBackBtn);
+            VM.PanelEvent.Remove(OnCllickPanel);
+            VM.PassiveSkillList.ItemClickEvent -= OnClickPassiveSkillItem;
+
+        }
+        /// <summary>
+        /// 隐藏技能信息气泡框
+        /// </summary>
+        /// <param name="context"></param>
+        private void OnCllickPanel(EventContext context)
+        {
+            if (_bHideSkillInfo)
+            {
+                ShowSkillInfoGroup(false);
+            }
+            _bHideSkillInfo = true;
+        }
+
+        private void OnClickBackBtn(EventContext context)
+        {
+            Context.ClosePanel();
+        }
+
+        #endregion
+
+        public void ShowUI()
+        {
+            _bHideSkillInfo = true;
+            ShowSkillInfoGroup(false);
+            var jobInfo = careerTableRepo.Get(PlayerData.Instance.JobId);
+            if (jobInfo == null) return;
+
+            VM.JobNameLabel.text = jobInfo.Name;
+            VM.JobTypeLabel.text = jobInfo.Job_pos;
+            VM.JobDescLabel.text = jobInfo.Desc;
+            ShowSkill(jobInfo.Skill);
+            ShowJobPassiveSkillUI(jobInfo.Passive_skill);
+            LoadJobSpine("info_job_1001_1_SkeletonData");
+        }
+
+        /// <summary>
+        /// 主动技能
+        /// </summary>
+        /// <param name="skillIds"></param>
+
+        private void ShowSkill(int[] skillIds)
+        {
+            var skillInfo = SkillTableRepo.Get(skillIds[1]);
+            if (skillInfo == null) return;
+            VM.SkillNameLabel.text = skillInfo.Name;
+            VM.SkillDescLabel.text = skillInfo.Desc;
+            VM.ActiveSkillIcon.icon = skillInfo.Icon;
+            VM.SkillCdLabel.text = (skillInfo.RestTime * 0.001f).ToString("F1");
+        }
+
+        /// <summary>
+        /// 职业被动技能UI
+        /// </summary>
+        private void ShowJobPassiveSkillUI(int[] skillIds)
+        {
+            int index = 0;
+            if (_passiveSkillDataArray == null) _passiveSkillDataArray = new List<JobSkillParam>();
+            for (int i = 0; i < skillIds.Length; i += 2)
+            {
+                _passiveSkillDataArray.Add(new JobSkillParam()
+                {
+                    unlockLv = skillIds[i],
+                    skillId = skillIds[i + 1],
+                });
+                index++;
+            }
+            VM.PassiveSkillList.BindDatas(_passiveSkillDataArray);
+        }
+
+        /// <summary>
+        /// 点击的被动技能项
+        /// </summary>
+        /// <param name="index"></param>
+        private void OnClickPassiveSkillItem(int index)
+        {
+            _bHideSkillInfo = false;
+            ShowSkillInfoGroup(true, index, SkillTableRepo.Get(_passiveSkillDataArray[index].skillId));
+        }
+
+        /// <summary>
+        /// 显示技能弹窗信息UI
+        /// </summary>
+        /// <param name="Show"></param>
+        /// <param name="bPassive"></param>
+        private void ShowSkillInfoGroup(bool bShow, int index = 0, SkillTable skillInfo = null)
+        {
+            //Log.Debug($"ShowSkillInfoGroup bShow:{bShow} info:{skillInfo != null} Frame:{Time.frameCount}");
+            if (bShow && skillInfo != null)
+            {
+                var skillParam = new SkillInfoParam()
+                {
+                    bShowRightBubble = index > 1,
+                    skillInfo = skillInfo
+                };
+                if (VM.SkillInfoNested.Active)
+                    VM.SkillInfoNested.Ctrl.ShowSkillInfo(skillParam);
+                else
+                    VM.SkillInfoNested.Enable(skillParam);
+
+                VM.PosCtrl.selectedIndex = index;
+            }
+            else
+            {
+                VM.SkillInfoNested.Disable();
+            }
+        }
+
+
+        /// <summary>
+        /// 加载主角的spine
+        /// </summary>
+        /// <param name="spineName"></param>
+        private void LoadJobSpine(string spineName)
+        {
+            VM.JobSpine.LoadSpine(spineName, "stand", true);
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/JobInfoSkillNested/PlayerJobInfoSkillNestedCtrl.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: C3kZtyivAns49+uAKJQF7HogdO6QXzv2SBGe/Tp1jUWY8SeKuoV8l9c=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 53 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/JobInfoSkillNested/PlayerJobInfoSkillNestedVM.Gen.cs

@@ -0,0 +1,53 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// #PropertyDefineArea 属性定义区域
+/// #PropertyAssignArea 属性赋值区域
+/// #ComponentType 组件类型
+/// #PropertyName 属性名字
+/// 该脚本由模板创建,不可编辑
+/// created by cb 2024
+using FairyGUI;
+using XGame.Framework.FGUI;
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    /// <summary>
+    /// 该脚本由模板创建,不可修改,不可编辑
+    /// </summary>
+    public partial class PlayerJobInfoSkillNestedVM : FguiViewModel
+    {
+        public Controller PosCtrl { get; private set; }
+        public GLoader3D JobSpine { get; private set; }
+        public GTextField JobNameLabel { get; private set; }
+        public GTextField JobTypeLabel { get; private set; }
+        public GLoader ActiveSkillIcon { get; private set; }
+        public GList PassiveSkillList { get; private set; }
+        public GTextField JobDescLabel { get; private set; }
+        public GTextField SkillCdLabel { get; private set; }
+        public GTextField SkillNameLabel { get; private set; }
+        public GTextField SkillDescLabel { get; private set; }
+        public PlayerSkillInfoNestedView SkillInfoNested { get; private set; }
+        public GButton BackBtn { get; private set; }
+
+        protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
+        {
+            PosCtrl = panel.GetController("PosCtrl");
+            JobSpine = panel.GetChild("JobSpine") as GLoader3D;
+            JobNameLabel = panel.GetChild("JobNameLabel") as GTextField;
+            JobTypeLabel = panel.GetChild("JobTypeLabel") as GTextField;
+            ActiveSkillIcon = panel.GetChild("ActiveSkillIcon") as GLoader;
+            PassiveSkillList = panel.GetChild("PassiveSkillList") as GList;
+            PassiveSkillList.Init(typeof(PlayerPassiveSkillIconListItemView), adapter.CreateListItem);
+            JobDescLabel = panel.GetChild("JobDescLabel") as GTextField;
+            SkillCdLabel = panel.GetChild("SkillCdLabel") as GTextField;
+            SkillNameLabel = panel.GetChild("SkillNameLabel") as GTextField;
+            SkillDescLabel = panel.GetChild("SkillDescLabel") as GTextField;
+            SkillInfoNested = adapter.CreateNested<PlayerSkillInfoNestedView>(new FguiNested(panel.GetChild("SkillInfoNested").asCom), true);
+            AddChild(SkillInfoNested);
+            BackBtn = panel.GetChild("BackBtn") as GButton;
+
+        }
+    }
+}

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/JobInfoSkillNested/PlayerJobInfoSkillNestedVM.Gen.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: CH8X53urAX/imXIZfEmDRwDNm1Um31csMvPwJKYLjBnDUJ+sT7EfyLQ=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 23 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/JobInfoSkillNested/PlayerJobInfoSkillNestedView.cs

@@ -0,0 +1,23 @@
+/// #pkgName FGUI包名
+/// #panelName UIPanel名字
+/// #UIName = $"{#pkgName}{#panelName}" UIKey名字
+/// 该脚本由模板创建
+/// created by cb 2024
+
+using XGame.Framework.UI;
+
+namespace FL.FGUI
+{
+    public static partial class UINestedKeys
+    {
+        private static UIKey _PlayerJobInfoSkillNested;
+        public static UIKey PlayerJobInfoSkillNested => _PlayerJobInfoSkillNested ?? (_PlayerJobInfoSkillNested = new UIKey("Player", "JobInfoSkillNested", typeof(PlayerJobInfoSkillNestedView)));
+    }
+    public partial class PlayerJobInfoSkillNestedView : NestedView<PlayerJobInfoSkillNestedCtrl, PlayerJobInfoSkillNestedVM>
+    {
+        protected override void OnDispose()
+        {
+        }
+    }
+}
+

+ 11 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/JobInfoSkillNested/PlayerJobInfoSkillNestedView.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: B3xMtn+uWylBY0/32Bqi5sGVoZfuBU9m0qVCTeYSDktm/jaT/6E7wXg=
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 119
Assets/Scripts/Business/Runtime/FGUI/Player/JobInformationPanel/PlayerJobInformationPanelCtrl.cs

@@ -4,10 +4,6 @@
 /// 该脚本由模板创建
 /// created by cb 2024
 
-using FairyGUI;
-using FL.Data;
-using System.Collections.Generic;
-using XGame.Database;
 using XGame.Framework.UI;
 
 namespace FL.FGUI
@@ -18,143 +14,31 @@ namespace FL.FGUI
     /// <typeparam name=""></typeparam>
     public partial class PlayerJobInformationPanelCtrl : UIController<PlayerJobInformationPanelVM>
     {
-        private int[] _posX;
-        private List<JobSkillParam> _passiveSkillDataArray;
-
         protected override void OnEnable(object intent)
         {
             AddUIListenres();
-            InitUI();
             ShowUI();
         }
         protected override void OnDisable()
         {
             RemoveUIListenres();
-            _passiveSkillDataArray?.Clear();
-            _passiveSkillDataArray = null;
-            if (_posX != null) _posX = null;
         }
         #region UI事件
         private void AddUIListenres()
         {
-            VM.BackBtn.onClick.Add(OnClickBackBtn);
-            VM.HideSkillInfoGroupBtn.onClick.Add(OnClickHideSkillInfoGroupBtn);
-            VM.PassiveSkillList.ItemClickEvent += OnClickPassiveSkillItem;
+
         }
         private void RemoveUIListenres()
         {
-            VM.BackBtn.onClick.Remove(OnClickBackBtn);
-            VM.HideSkillInfoGroupBtn.onClick.Remove(OnClickHideSkillInfoGroupBtn);
-            VM.PassiveSkillList.ItemClickEvent -= OnClickPassiveSkillItem;
-        }
-        /// <summary>
-        /// 隐藏技能信息提示框
-        /// </summary>
-        /// <param name="context"></param>
-        private void OnClickHideSkillInfoGroupBtn(EventContext context)
-        {
-            ShowSkillInfoGroup(false);
-        }
- 
-        private void OnClickBackBtn(EventContext context)
-        {
-            Context.ClosePanel();
-        }
 
+        }
         #endregion
 
-        private void InitUI()
-        {
-            ShowSkillInfoGroup(false);
-            if (_posX == null) _posX = new int[5] { 78, 192, 36, 145, 255 };
-        }
 
         private void ShowUI()
         {
-            var jobInfo = careerTableRepo.Get(PlayerData.Instance.JobId);
-            if (jobInfo == null) return;
-
-            VM.JobNameLabel.text = jobInfo.Name;
-            VM.JobTypeLabel.text = jobInfo.Job_pos;
-            VM.JobDescLabel.text = jobInfo.Desc;
-            ShowSkill(jobInfo.Skill);
-            ShowJobPassiveSkillUI(jobInfo.Passive_skill);
-            LoadJobSpine("info_job_1001_1_SkeletonData");
+            VM.JobInfoSkillNested.Ctrl.ShowUI();
         }
 
-        /// <summary>
-        /// 主动技能
-        /// </summary>
-        /// <param name="skillIds"></param>
-
-        private void ShowSkill(int[] skillIds)
-        {
-            var skillInfo = SkillTableRepo.Get(skillIds[1]);
-            if (skillInfo == null) return;
-            VM.SkillNameLabel.text = skillInfo.Name;
-            VM.SkillDescLabel.text = skillInfo.Desc;
-            VM.ActiveSkillIcon.icon = skillInfo.Icon;
-            VM.SkillCdLabel.text = (skillInfo.RestTime * 0.001f).ToString("F1"); 
-        }
-
-        /// <summary>
-        /// 职业被动技能UI
-        /// </summary>
-        private void ShowJobPassiveSkillUI(int[] skillIds)
-        {
-            int index = 0;
-            if (_passiveSkillDataArray == null) _passiveSkillDataArray = new List<JobSkillParam>();
-            for (int i = 0; i < skillIds.Length; i += 2)
-            {
-                _passiveSkillDataArray.Add(new JobSkillParam()
-                {
-                    unlockLv = skillIds[i],
-                    skillId = skillIds[i + 1],
-                });
-                index++;
-            }
-            VM.PassiveSkillList.BindDatas(_passiveSkillDataArray);
-        }
-
-        /// <summary>
-        /// 点击的被动技能项
-        /// </summary>
-        /// <param name="index"></param>
-        private void OnClickPassiveSkillItem(int index)
-        {
-            XGame.Log.Warn($"点击的被动技能id:{_passiveSkillDataArray[index].skillId}");
-            ShowSkillInfoGroup(true, index, SkillTableRepo.Get(_passiveSkillDataArray[index].skillId));
-        }
-
-        /// <summary>
-        /// 显示技能弹窗信息UI
-        /// </summary>
-        /// <param name="Show"></param>
-        /// <param name="bPassive"></param>
-        private void ShowSkillInfoGroup(bool bShow, int index = 0, SkillTable skillInfo = null)
-        {
-            VM.HideSkillInfoGroupBtn.visible = bShow;
-            if (bShow && skillInfo != null)
-            {
-                VM.SkillInfoNested.Enable(new SkillInfoParam() { bShowRightBubble = index > 1, skillInfo = skillInfo });
-                var pos = VM.SkillInfoNested.VM.Tr.localPosition;
-                pos.x = _posX[index];
-                VM.SkillInfoNested.VM.Tr.localPosition = pos;
-            }
-            else
-            {
-                VM.SkillInfoNested.Disable();
-            }
-        }
-
-
-        /// <summary>
-        /// 加载主角的spine
-        /// </summary>
-        /// <param name="spineName"></param>
-        private void LoadJobSpine(string spineName)
-        {
-            VM.JobSpine.LoadSpine(spineName, "stand", true);
-        }
     }
 }

+ 3 - 26
Assets/Scripts/Business/Runtime/FGUI/Player/JobInformationPanel/PlayerJobInformationPanelVM.Gen.cs

@@ -18,35 +18,12 @@ namespace FL.FGUI
     /// </summary>
     public partial class PlayerJobInformationPanelVM : FguiViewModel
     {
-        public GLoader3D JobSpine { get; private set; }
-        public GTextField JobNameLabel { get; private set; }
-        public GTextField JobTypeLabel { get; private set; }
-        public GLoader ActiveSkillIcon { get; private set; }
-        public GList PassiveSkillList { get; private set; }
-        public GTextField JobDescLabel { get; private set; }
-        public GTextField SkillCdLabel { get; private set; }
-        public GTextField SkillNameLabel { get; private set; }
-        public GTextField SkillDescLabel { get; private set; }
-        public PlayerSkillInfoNestedView SkillInfoNested { get; private set; }
-        public GButton BackBtn { get; private set; }
-        public GButton HideSkillInfoGroupBtn { get; private set; }
+        public PlayerJobInfoSkillNestedView JobInfoSkillNested { get; private set; }
 
         protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
         {
-            JobSpine = panel.GetChild("JobSpine") as GLoader3D;
-            JobNameLabel = panel.GetChild("JobNameLabel") as GTextField;
-            JobTypeLabel = panel.GetChild("JobTypeLabel") as GTextField;
-            ActiveSkillIcon = panel.GetChild("ActiveSkillIcon") as GLoader;
-            PassiveSkillList = panel.GetChild("PassiveSkillList") as GList;
-            PassiveSkillList.Init(typeof(PlayerPassiveSkillIconListItemView), adapter.CreateListItem);
-            JobDescLabel = panel.GetChild("JobDescLabel") as GTextField;
-            SkillCdLabel = panel.GetChild("SkillCdLabel") as GTextField;
-            SkillNameLabel = panel.GetChild("SkillNameLabel") as GTextField;
-            SkillDescLabel = panel.GetChild("SkillDescLabel") as GTextField;
-            SkillInfoNested = adapter.CreateNested<PlayerSkillInfoNestedView>(new FguiNested(panel.GetChild("SkillInfoNested").asCom), true);
-            AddChild(SkillInfoNested);
-            BackBtn = panel.GetChild("BackBtn") as GButton;
-            HideSkillInfoGroupBtn = panel.GetChild("HideSkillInfoGroupBtn") as GButton;
+            JobInfoSkillNested = adapter.CreateNested<PlayerJobInfoSkillNestedView>(new FguiNested(panel.GetChild("JobInfoSkillNested").asCom), true);
+            AddChild(JobInfoSkillNested);
 
         }
     }

+ 2 - 2
Assets/Scripts/Business/Runtime/FGUI/Player/JobInformationPanel/PlayerJobInformationPanelView.cs

@@ -1,4 +1,4 @@
-/// #pkgName FGUI包名
+/// #pkgName FGUI包名
 /// #panelName UIPanel名字
 /// #UIName = $"{#pkgName}{#panelName}" UIKey名字
 /// 该脚本由模板创建
@@ -15,7 +15,7 @@ namespace FL.FGUI
     }
     public partial class PlayerJobInformationPanelView : UIView
     {
-        public static UILayer Layer => UILayer.Popup;
+        public static UILayer Layer => UILayer.Middle;
         protected override void AddController(IUIControllerGroup group)
         {
             group.Add(new PlayerJobInformationPanelCtrl());

+ 21 - 17
Assets/Scripts/Business/Runtime/FGUI/Player/JokSkillNested/PlayerJokSkillNestedCtrl.cs

@@ -8,6 +8,8 @@ using FairyGUI;
 using FL.Data;
 using System;
 using System.Collections.Generic;
+using UnityEngine;
+using XGame;
 using XGame.Database;
 using XGame.Framework.UI;
 
@@ -33,6 +35,7 @@ namespace FL.FGUI
         private careerTable _jobInfo; // 当前职业信息
         private JobSkillParam[] _passiveSkillDataArray; // 被动技能数据列表
         private Dictionary<EAttributeType, string> _attributeDescMap;
+        private Action<bool> _clickSkillIconCallback;
 
         protected override void OnEnable(object intent)
         {
@@ -60,8 +63,6 @@ namespace FL.FGUI
             VM.SkillBtn.onClick.Add(OnClickSkillBtn);
             VM.WakeUpBtn.onClick.Add(OnClickWakeUpBtn);
             VM.TransferBtn.onClick.Add(OnClickTransferBtn);
-            VM.HideSkillInfoGroupBtn.onClick.Add(OnClickHideSkillInfoGroupBtn);
-
         }
         private void RemoveUIListenres()
         {
@@ -70,8 +71,6 @@ namespace FL.FGUI
             VM.SkillBtn.onClick.Remove(OnClickSkillBtn);
             VM.WakeUpBtn.onClick.Remove(OnClickWakeUpBtn);
             VM.TransferBtn.onClick.Remove(OnClickTransferBtn);
-            VM.HideSkillInfoGroupBtn.onClick.Remove(OnClickHideSkillInfoGroupBtn);
-
         }
         private void OnClickAttrInfoBtn(EventContext context)
         {
@@ -88,7 +87,9 @@ namespace FL.FGUI
         private void OnClickSkillBtn(EventContext context)
         {
             if (_skillId > 0)
+            {
                 OnClickSkillIcon(_skillId, -1);
+            }
         }
         /// <summary>
         /// 觉醒按钮
@@ -115,14 +116,6 @@ namespace FL.FGUI
                 OnClickJobBtn(null);
             }
         }
-        /// <summary>
-        /// 隐藏技能信息提示框
-        /// </summary>
-        /// <param name="context"></param>
-        private void OnClickHideSkillInfoGroupBtn(EventContext context)
-        {
-            ShowSkillInfoGroup(false);
-        }
 
         #endregion
 
@@ -136,8 +129,9 @@ namespace FL.FGUI
             EventSingle.Instance.RemoveListener(EventDefine.AttributeChange, OnChangeAttribute); // 角色属性变化
         }
 
-        public void Init()
+        public void Init(Action<bool> clickSkillIcon)
         {
+            _clickSkillIconCallback = clickSkillIcon;
             if (_attributeDescMap == null)
             {
                 _attributeDescMap = new Dictionary<EAttributeType, string>()
@@ -245,8 +239,10 @@ namespace FL.FGUI
         {
             var skillInfo = SkillTableRepo.Get(skillId);
             if (skillInfo == null) return;
+             if (_clickSkillIconCallback != null) _clickSkillIconCallback(false);
 
             ShowSkillInfoGroup(true, index, skillInfo);
+            //Log.Info($"OnClickSkillIcon.点击技能图标id:{skillId}");
         }
 
         /// <summary>
@@ -254,16 +250,24 @@ namespace FL.FGUI
         /// </summary>
         /// <param name="Show"></param>
         /// <param name="bPassive"></param>
-        private void ShowSkillInfoGroup(bool bShow, int index = 0, SkillTable skillInfo = null)
+        public void ShowSkillInfoGroup(bool bShow, int index = 0, SkillTable skillInfo = null)
         {
-            VM.HideSkillInfoGroupBtn.visible = bShow;
+            Log.Debug($"ShowSkillInfoGroup bShow:{bShow} info:{skillInfo != null} Frame:{Time.frameCount}");
             if (bShow && skillInfo != null) 
             {
-                VM.SkillInfoNested.Enable(new SkillInfoParam() { bShowRightBubble = index > 1, skillInfo=skillInfo });
+                var skillParam = new SkillInfoParam()
+                {
+                    bShowRightBubble = index > 1,
+                    skillInfo = skillInfo
+                };
+                if (VM.SkillInfoNested.Active)
+                    VM.SkillInfoNested.Ctrl.ShowSkillInfo(skillParam);
+                else
+                    VM.SkillInfoNested.Enable(skillParam);
                 VM.SkillInfoTipCtrl.selectedIndex = index == -1 ? 0 : (index + 1);
                 
             }
-            else
+            else if (VM.SkillInfoNested.Active)
             {
                 VM.SkillInfoNested.Disable();
             }

+ 0 - 2
Assets/Scripts/Business/Runtime/FGUI/Player/JokSkillNested/PlayerJokSkillNestedVM.Gen.cs

@@ -35,7 +35,6 @@ namespace FL.FGUI
         public GTextField UnlockLabel { get; private set; }
         public GButton WakeUpBtn { get; private set; }
         public GButton TransferBtn { get; private set; }
-        public GButton HideSkillInfoGroupBtn { get; private set; }
         public PlayerSkillInfoNestedView SkillInfoNested { get; private set; }
 
         protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
@@ -58,7 +57,6 @@ namespace FL.FGUI
             UnlockLabel = panel.GetChild("UnlockLabel") as GTextField;
             WakeUpBtn = panel.GetChild("WakeUpBtn") as GButton;
             TransferBtn = panel.GetChild("TransferBtn") as GButton;
-            HideSkillInfoGroupBtn = panel.GetChild("HideSkillInfoGroupBtn") as GButton;
             SkillInfoNested = adapter.CreateNested<PlayerSkillInfoNestedView>(new FguiNested(panel.GetChild("SkillInfoNested").asCom), true);
             AddChild(SkillInfoNested);
 

+ 24 - 3
Assets/Scripts/Business/Runtime/FGUI/Player/MainPanel/PlayerMainPanelCtrl.cs

@@ -7,7 +7,9 @@
 using FairyGUI;
 using FL.Data;
 using FL.Data.Items;
+using System;
 using System.Collections.Generic;
+using XGame;
 using XGame.Database;
 using XGame.Framework.UI;
 
@@ -19,6 +21,7 @@ namespace FL.FGUI
     /// <typeparam name=""></typeparam>
     public partial class PlayerMainPanelCtrl : UIController<PlayerMainPanelVM>
     {
+        private bool _bHideSkillInfo; // 是否需要隐藏技能信息气泡
         private List<CommonItemBaseView> _equipItemList;
 
         protected override void OnEnable(object intent)
@@ -50,6 +53,7 @@ namespace FL.FGUI
             VM.NotOpenBtn1.onClick.Add(OnClickNotOpenBtn1);
             VM.NotOpenBtn2.onClick.Add(OnClickNotOpenBtn2);
             VM.UpgradeLvBtn.onClick.Add(OnClickUpgradeLvBtn);
+            VM.PanelEvent.Add(OnCllickPanel);
         }
         private void RemoveUIListenres()
         {
@@ -60,6 +64,19 @@ namespace FL.FGUI
             VM.NotOpenBtn1.onClick.Remove(OnClickNotOpenBtn1);
             VM.NotOpenBtn2.onClick.Remove(OnClickNotOpenBtn2);
             VM.UpgradeLvBtn.onClick.Remove(OnClickUpgradeLvBtn);
+            VM.PanelEvent.Remove(OnCllickPanel);
+        }
+        /// <summary>
+        /// 隐藏技能信息气泡弹窗
+        /// </summary>
+        /// <param name="context"></param>
+        private void OnCllickPanel(EventContext context)
+        {
+            if (_bHideSkillInfo)
+            {
+                VM.JokSkillNested.Ctrl.ShowSkillInfoGroup(false);
+            }
+            _bHideSkillInfo = true;
         }
 
         private void OnClickUpgradeLvBtn(EventContext context)
@@ -94,6 +111,8 @@ namespace FL.FGUI
         private void OnClickNotOpenBtn2(EventContext context)
         {
             Context.ShowTips(StringDefine.notOpen);
+
+            Context.UI.OpenAsync(UIKeys.PlayerJobInformationPanel);
         }
 
         #endregion
@@ -123,9 +142,11 @@ namespace FL.FGUI
                     VM.Weapon,VM.Helmet,VM.Clothes,VM.Hand,VM.Pants,VM.Boots
                 };
             }
-
-            VM.JokSkillNested.Ctrl.Init();
-
+            _bHideSkillInfo = true;
+            VM.JokSkillNested.Ctrl.Init((bool bHideSkillInfo) =>
+            {
+                _bHideSkillInfo = bHideSkillInfo;
+            });
             PlayerService.Instance.SendToEquipInto();
         }
 

+ 3 - 5
Assets/Scripts/Business/Runtime/FGUI/Player/MainPanel/PlayerMainPanelVM.Gen.cs

@@ -19,7 +19,6 @@ namespace FL.FGUI
     public partial class PlayerMainPanelVM : FguiViewModel
     {
         public Controller SuperlativeCtrl { get; private set; }
-        public Controller SkillInfoTipCtrl { get; private set; }
         public CommonItemBaseView Weapon { get; private set; }
         public CommonItemBaseView Clothes { get; private set; }
         public CommonItemBaseView Helmet { get; private set; }
@@ -32,18 +31,17 @@ namespace FL.FGUI
         public GTextField NameLabel { get; private set; }
         public GTextField LvLabl { get; private set; }
         public GButton UpgradeLvBtn { get; private set; }
-        public PlayerJokSkillNestedView JokSkillNested { get; private set; }
         public GButton MountBtn { get; private set; }
         public GButton ArtifactBtn { get; private set; }
         public GButton ContractBtn { get; private set; }
         public GButton JewelryBtn { get; private set; }
         public GButton NotOpenBtn1 { get; private set; }
         public GButton NotOpenBtn2 { get; private set; }
+        public PlayerJokSkillNestedView JokSkillNested { get; private set; }
 
         protected override void BindComponents(GComponent panel, IUIViewAdapter adapter)
         {
             SuperlativeCtrl = panel.GetController("SuperlativeCtrl");
-            SkillInfoTipCtrl = panel.GetController("SkillInfoTipCtrl");
             Weapon = adapter.CreateNested<CommonItemBaseView>(new FguiNested(panel.GetChild("Weapon").asCom), true);
             AddChild(Weapon);
             Clothes = adapter.CreateNested<CommonItemBaseView>(new FguiNested(panel.GetChild("Clothes").asCom), true);
@@ -62,14 +60,14 @@ namespace FL.FGUI
             NameLabel = panel.GetChild("NameLabel") as GTextField;
             LvLabl = panel.GetChild("LvLabl") as GTextField;
             UpgradeLvBtn = panel.GetChild("UpgradeLvBtn") as GButton;
-            JokSkillNested = adapter.CreateNested<PlayerJokSkillNestedView>(new FguiNested(panel.GetChild("JokSkillNested").asCom), true);
-            AddChild(JokSkillNested);
             MountBtn = panel.GetChild("MountBtn") as GButton;
             ArtifactBtn = panel.GetChild("ArtifactBtn") as GButton;
             ContractBtn = panel.GetChild("ContractBtn") as GButton;
             JewelryBtn = panel.GetChild("JewelryBtn") as GButton;
             NotOpenBtn1 = panel.GetChild("NotOpenBtn1") as GButton;
             NotOpenBtn2 = panel.GetChild("NotOpenBtn2") as GButton;
+            JokSkillNested = adapter.CreateNested<PlayerJokSkillNestedView>(new FguiNested(panel.GetChild("JokSkillNested").asCom), true);
+            AddChild(JokSkillNested);
 
         }
     }

+ 9 - 0
Assets/Scripts/Business/Runtime/FGUI/Player/SkillInfoNested/PlayerSkillInfoNestedCtrl.cs

@@ -5,6 +5,8 @@
 /// created by cb 2024
 
 using FairyGUI;
+using System;
+using XGame;
 using XGame.Database;
 using XGame.Framework.UI;
 
@@ -25,6 +27,7 @@ namespace FL.FGUI
         protected override void OnEnable(object intent)
         {
             AddUIListenres();
+            
             if (intent != null) 
             {
                 ShowSkillInfo((SkillInfoParam)intent);
@@ -37,8 +40,14 @@ namespace FL.FGUI
         #region UI事件
         private void AddUIListenres()
         {
+            //VM.Panel.onTouchEnd.Add(OnTouchEnd);
+        }
 
+        private void OnTouchEnd(EventContext context)
+        {
+  
         }
+
         private void RemoveUIListenres()
         {
 

+ 1 - 1
Assets/Scripts/Business/Runtime/FGUI/Player/TransferPanel/PlayerTransferPanelView.cs

@@ -1,4 +1,4 @@
-/// #pkgName FGUI包名
+/// #pkgName FGUI包名
 /// #panelName UIPanel名字
 /// #UIName = $"{#pkgName}{#panelName}" UIKey名字
 /// 该脚本由模板创建

+ 2 - 2
Assets/Scripts/Business/Runtime/FGUI/Player/TransferSucessPanel/PlayerTransferSucessPanelView.cs

@@ -1,4 +1,4 @@
-/// #pkgName FGUI包名
+/// #pkgName FGUI包名
 /// #panelName UIPanel名字
 /// #UIName = $"{#pkgName}{#panelName}" UIKey名字
 /// 该脚本由模板创建
@@ -15,7 +15,7 @@ namespace FL.FGUI
     }
     public partial class PlayerTransferSucessPanelView : UIView
     {
-        public static UILayer Layer => UILayer.Popup;
+        public static UILayer Layer => UILayer.Middle;
         protected override void AddController(IUIControllerGroup group)
         {
             group.Add(new PlayerTransferSucessPanelCtrl());