Selaa lähdekoodia

雅集技能特效

zhaoyang 2 vuotta sitten
vanhempi
commit
8929b7ca37

+ 1 - 2
FGUIProject/assets/League/components/ListSkillItem.xml

@@ -5,12 +5,11 @@
     <image id="n16_gfx4" name="n16" src="miy37n" fileName="images/lm_ch_dldb.png" xy="0,0" pivot="0.5,0"/>
     <loader id="n23_miy3" name="loaIcon" xy="22,22" pivot="0.5,0.5" size="115,115" url="ui://tw70qm9de05086" autoSize="true"/>
     <image id="n20_miy3" name="n20" src="miy37i" fileName="images/lm_ch_szdk.png" xy="-7,127"/>
+    <image id="n17_gfx4" name="imgLock" src="miy37h" fileName="images/lm_ch_wdl_zz.png" xy="-6,-6"/>
     <loader id="n10_pvb4" name="loaScore" xy="28,3" size="44,44" group="n13_pvb4" url="ui://eg2y0ldp842s6h"/>
     <text id="n11_pvb4" name="txtScore" xy="73,0" size="60,50" group="n13_pvb4" font="ui://eg2y0ldpa0cftks" fontSize="37" color="#7c561e" letterSpacing="-2" text="+10"/>
     <group id="n13_pvb4" name="n13" xy="28,0" size="105,50"/>
-    <image id="n17_gfx4" name="imgLock" src="miy37h" fileName="images/lm_ch_wdl_zz.png" xy="-6,-6"/>
     <image id="n21_miy3" name="imgSuo" src="miy37t" fileName="imagesNew/tb_suo.png" pkg="eg2y0ldp" xy="59,75"/>
     <component id="n12_pvb4" name="comCost" src="n3xha1" fileName="components/ComCostCurrency.xml" pkg="eg2y0ldp" xy="16,127" pivot="0.5,0" scale="0.75,0.75" controller="c1,1"/>
-    <graph id="n24_ofwu" name="holder" xy="76,76" size="10,10"/>
   </displayList>
 </component>

+ 3 - 6
GameClient/Assets/Game/HotUpdate/FairyGUI/GenCode/League/UI_ListSkillItem.cs

@@ -9,12 +9,11 @@ namespace UI.League
         public GComponent target;
         public Controller m_c1;
         public GLoader m_loaIcon;
+        public GImage m_imgLock;
         public GLoader m_loaScore;
         public GTextField m_txtScore;
-        public GImage m_imgLock;
         public GImage m_imgSuo;
         public GComponent m_comCost;
-        public GGraph m_holder;
         public const string URL = "ui://tw70qm9dpvb45d";
         public const string PACKAGE_NAME = "League";
         public const string RES_NAME = "ListSkillItem";
@@ -64,23 +63,21 @@ namespace UI.League
         {
             m_c1 = comp.GetController("c1");
             m_loaIcon = (GLoader)comp.GetChild("loaIcon");
+            m_imgLock = (GImage)comp.GetChild("imgLock");
             m_loaScore = (GLoader)comp.GetChild("loaScore");
             m_txtScore = (GTextField)comp.GetChild("txtScore");
-            m_imgLock = (GImage)comp.GetChild("imgLock");
             m_imgSuo = (GImage)comp.GetChild("imgSuo");
             m_comCost = (GComponent)comp.GetChild("comCost");
-            m_holder = (GGraph)comp.GetChild("holder");
         }
         public void Dispose(bool disposeTarget = false)
         {
             m_c1 = null;
             m_loaIcon = null;
+            m_imgLock = null;
             m_loaScore = null;
             m_txtScore = null;
-            m_imgLock = null;
             m_imgSuo = null;
             m_comCost = null;
-            m_holder = null;
             if(disposeTarget && target != null)
             {
                 target.RemoveFromParent();

+ 44 - 24
GameClient/Assets/Game/HotUpdate/Views/League/LeagueSkillUpView.cs

@@ -21,6 +21,7 @@ namespace GFGGame
         private GoWrapper _wrapper2;
         private List<GameObject> _gameObjects = new List<GameObject>();
         private List<GoWrapper> _wrappers = new List<GoWrapper>();
+        private List<GComponent> _items = new List<GComponent>();
         private int _pageCount;
         private int _type;
         public override void Dispose()
@@ -28,10 +29,10 @@ namespace GFGGame
             SceneController.DestroyObjectFromView(_gameObject0, _wrapper0);
             SceneController.DestroyObjectFromView(_gameObject1, _wrapper1);
             SceneController.DestroyObjectFromView(_gameObject2, _wrapper2);
-            for (int i = 0; i < _gameObjects.Count; i++)
-            {
-                SceneController.DestroyObjectFromView(_gameObjects[i], _wrappers[i]);
-            }
+            // for (int i = 0; i < _gameObjects.Count; i++)
+            // {
+            //     SceneController.DestroyObjectFromView(_gameObjects[i], _wrappers[i]);
+            // }
             if (_valueBarController != null)
             {
                 _valueBarController.Dispose();
@@ -83,8 +84,11 @@ namespace GFGGame
             _type = (int)this.viewData;
             _valueBarController.OnShown();
             _valueBarController.Controller(11);
-            _ui.m_comSkill.m_list.numItems = LeagueSkillCountCfgArray.Instance.GetCfg(_type).layerCount;
-            _ui.m_t0.Play();
+            _ui.m_t0.Play(() =>
+            {
+                _ui.m_comSkill.m_list.numItems = LeagueSkillCountCfgArray.Instance.GetCfg(_type).layerCount;
+            });
+
             UpdateView();
         }
 
@@ -93,10 +97,24 @@ namespace GFGGame
             base.OnHide();
             _valueBarController.OnHide();
             if (_ui.m_comSkill.m_list.numItems > 0) _ui.m_comSkill.m_list.ScrollToView(0);
+            _ui.m_comSkill.m_list.numItems = 0;
             _ui.m_t0.Stop();
             _ui.m_t1.Stop();
+
+            DestroySkillAni();
         }
+        private void DestroySkillAni()
+        {
+            for (int i = 0; i < _gameObjects.Count; i++)
+            {
+                SceneController.DestroyObjectFromView(_gameObjects[i], _wrappers[i]);
+                _items[i].RemoveChildAt(4);
+            }
+            _gameObjects.Clear();
+            _wrappers.Clear();
+            _items.Clear();
 
+        }
         protected override void RemoveEventListener()
         {
             base.RemoveEventListener();
@@ -179,6 +197,10 @@ namespace GFGGame
             {
                 item.m_listSkill.itemRenderer = RenderListSkillItem;
             }
+            if (LeagueDataManager.Instance.CurLayer == index + 1)
+            {
+                DestroySkillAni();
+            }
             item.m_listSkill.data = skillCfgs;
             item.m_listSkill.numItems = skillCfgs.Count;
             UI_ListSkillLayerItem.ProxyEnd();
@@ -204,29 +226,27 @@ namespace GFGGame
             }
 
             item.m_imgSuo.visible = !canActive;
-            item.m_holder.visible = isLock && canActive;
-            if (isLock && canActive)
+
+            if (isLock && canActive && _gameObjects.Count <= index)
             {
                 GameObject gameObject = null;
                 GoWrapper wrapper = null;
-                if (_gameObjects.Count > index)
-                {
-                    gameObject = _gameObjects[index];
-                    wrapper = _wrappers[index];
-                }
+                GGraph holder = new GGraph();
+                holder.SetSize(1, 1);
+                holder.SetPosition(80, 80, 0);
+                holder.name = "holder";
+                item.target.AddChildAt(holder, 4);
                 string resPath = ResPathUtil.GetViewEffectPath("ui_league", "tea_nolearn");
-                SceneController.AddObjectToView(gameObject, wrapper, item.m_holder, resPath, out gameObject, out wrapper, 80);
+                SceneController.AddObjectToView(gameObject, wrapper, holder, resPath, out gameObject, out wrapper, 100);
 
-                if (_gameObjects.Count <= index)
-                {
-                    _gameObjects.Add(gameObject);
-                    _wrappers.Add(wrapper);
-                }
-                else
-                {
-                    _gameObjects[index] = gameObject;
-                    _wrappers[index] = wrapper;
-                }
+                _gameObjects.Add(gameObject);
+                _wrappers.Add(wrapper);
+                _items.Add(item.target);
+            }
+            GObject gObject = item.target.GetChild("holder");
+            if (gObject != null)
+            {
+                gObject.visible = isLock && canActive;
             }
 
             ItemUtil.UpdateItemNeedNum(item.m_comCost, skillCfgs[index].consumeArr[0], false, "#FFFBF4");

BIN
GameClient/Assets/ResIn/UI/League/League_fui.bytes