Przeglądaj źródła

修改金币飞行逻辑

DESKTOP-FB72PO8\Administrator 5 miesięcy temu
rodzic
commit
008b1094b1

+ 0 - 186
Assets/Scenes/testCombat.scene

@@ -984,189 +984,6 @@ MonoBehaviour:
   m_OnValueChanged:
     m_PersistentCalls:
       m_Calls: []
---- !u!1001 &1949729704
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    serializedVersion: 3
-    m_TransformParent: {fileID: 0}
-    m_Modifications:
-    - target: {fileID: 4689999269615573392, guid: 52392ff02b4e5eb4a83025b6e08cc989, type: 3}
-      propertyPath: m_Name
-      value: Chapter02
-      objectReference: {fileID: 0}
-    - target: {fileID: 4689999269615573392, guid: 52392ff02b4e5eb4a83025b6e08cc989, type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 7374041964540775655, guid: 52392ff02b4e5eb4a83025b6e08cc989, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: -38.63
-      objectReference: {fileID: 0}
-    - target: {fileID: 7374041964540775655, guid: 52392ff02b4e5eb4a83025b6e08cc989, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 7374041964540775655, guid: 52392ff02b4e5eb4a83025b6e08cc989, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 7374041964540775655, guid: 52392ff02b4e5eb4a83025b6e08cc989, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 7374041964540775655, guid: 52392ff02b4e5eb4a83025b6e08cc989, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 7374041964540775655, guid: 52392ff02b4e5eb4a83025b6e08cc989, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 7374041964540775655, guid: 52392ff02b4e5eb4a83025b6e08cc989, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 7374041964540775655, guid: 52392ff02b4e5eb4a83025b6e08cc989, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 7374041964540775655, guid: 52392ff02b4e5eb4a83025b6e08cc989, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 7374041964540775655, guid: 52392ff02b4e5eb4a83025b6e08cc989, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-    m_RemovedGameObjects: []
-    m_AddedGameObjects: []
-    m_AddedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: 52392ff02b4e5eb4a83025b6e08cc989, type: 3}
---- !u!1001 &1527068039127526522
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    serializedVersion: 3
-    m_TransformParent: {fileID: 0}
-    m_Modifications:
-    - target: {fileID: 2752559100150043988, guid: 343b9f4c52e0c3a42ab034b985fbe3a7, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 2752559100150043988, guid: 343b9f4c52e0c3a42ab034b985fbe3a7, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 2752559100150043988, guid: 343b9f4c52e0c3a42ab034b985fbe3a7, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: -60
-      objectReference: {fileID: 0}
-    - target: {fileID: 2752559100150043988, guid: 343b9f4c52e0c3a42ab034b985fbe3a7, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 2752559100150043988, guid: 343b9f4c52e0c3a42ab034b985fbe3a7, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 2752559100150043988, guid: 343b9f4c52e0c3a42ab034b985fbe3a7, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 2752559100150043988, guid: 343b9f4c52e0c3a42ab034b985fbe3a7, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 2752559100150043988, guid: 343b9f4c52e0c3a42ab034b985fbe3a7, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 2752559100150043988, guid: 343b9f4c52e0c3a42ab034b985fbe3a7, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 2752559100150043988, guid: 343b9f4c52e0c3a42ab034b985fbe3a7, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 7876193226129309935, guid: 343b9f4c52e0c3a42ab034b985fbe3a7, type: 3}
-      propertyPath: m_Name
-      value: Chapter01
-      objectReference: {fileID: 0}
-    - target: {fileID: 7876193226129309935, guid: 343b9f4c52e0c3a42ab034b985fbe3a7, type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-    m_RemovedGameObjects: []
-    m_AddedGameObjects: []
-    m_AddedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: 343b9f4c52e0c3a42ab034b985fbe3a7, type: 3}
---- !u!1001 &5894515503823291455
-PrefabInstance:
-  m_ObjectHideFlags: 0
-  serializedVersion: 2
-  m_Modification:
-    serializedVersion: 3
-    m_TransformParent: {fileID: 0}
-    m_Modifications:
-    - target: {fileID: 1874478833208555005, guid: ab197c0fcee70a24bae7a8c88ffc2584, type: 3}
-      propertyPath: m_LocalPosition.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1874478833208555005, guid: ab197c0fcee70a24bae7a8c88ffc2584, type: 3}
-      propertyPath: m_LocalPosition.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1874478833208555005, guid: ab197c0fcee70a24bae7a8c88ffc2584, type: 3}
-      propertyPath: m_LocalPosition.z
-      value: -59.5
-      objectReference: {fileID: 0}
-    - target: {fileID: 1874478833208555005, guid: ab197c0fcee70a24bae7a8c88ffc2584, type: 3}
-      propertyPath: m_LocalRotation.w
-      value: 1
-      objectReference: {fileID: 0}
-    - target: {fileID: 1874478833208555005, guid: ab197c0fcee70a24bae7a8c88ffc2584, type: 3}
-      propertyPath: m_LocalRotation.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1874478833208555005, guid: ab197c0fcee70a24bae7a8c88ffc2584, type: 3}
-      propertyPath: m_LocalRotation.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1874478833208555005, guid: ab197c0fcee70a24bae7a8c88ffc2584, type: 3}
-      propertyPath: m_LocalRotation.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1874478833208555005, guid: ab197c0fcee70a24bae7a8c88ffc2584, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.x
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1874478833208555005, guid: ab197c0fcee70a24bae7a8c88ffc2584, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.y
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 1874478833208555005, guid: ab197c0fcee70a24bae7a8c88ffc2584, type: 3}
-      propertyPath: m_LocalEulerAnglesHint.z
-      value: 0
-      objectReference: {fileID: 0}
-    - target: {fileID: 6358096024552388196, guid: ab197c0fcee70a24bae7a8c88ffc2584, type: 3}
-      propertyPath: m_Name
-      value: NavMeshTarget
-      objectReference: {fileID: 0}
-    - target: {fileID: 6358096024552388196, guid: ab197c0fcee70a24bae7a8c88ffc2584, type: 3}
-      propertyPath: m_IsActive
-      value: 0
-      objectReference: {fileID: 0}
-    m_RemovedComponents: []
-    m_RemovedGameObjects: []
-    m_AddedGameObjects: []
-    m_AddedComponents: []
-  m_SourcePrefab: {fileID: 100100000, guid: ab197c0fcee70a24bae7a8c88ffc2584, type: 3}
 --- !u!1660057539 &9223372036854775807
 SceneRoots:
   m_ObjectHideFlags: 0
@@ -1174,6 +991,3 @@ SceneRoots:
   - {fileID: 376281607}
   - {fileID: 235899921}
   - {fileID: 123020045}
-  - {fileID: 1949729704}
-  - {fileID: 1527068039127526522}
-  - {fileID: 5894515503823291455}

+ 29 - 31
Assets/Scripts/Core/UI/UTool/ImageMove.cs

@@ -1,10 +1,11 @@
 using System.Collections;
 using System.Collections.Generic;
 using CombatLibrary.CombatLibrary.CombatCore.Utility;
+using Fort23.Core;
 using Fort23.UTool;
 using UnityEngine;
 
-public class ImageMove
+public class ImageMove: CObject
 {
     // public AnimationCurve ShowSizeCurve;
     public AnimationCurve SizeCurve;
@@ -16,14 +17,11 @@ public class ImageMove
     private float currTime;
 
     public float speed;
-
-    // public float showSizeSpeed;
-    public bool isShowSize = true;
-
-    public Vector3 moveTargetPos;
+    public bool isExp;
     public Vector3 moveStartPos;
-    public System.Action finishCallBack;
-
+    public int GroupIndex = 0;
+    public System.Action<ImageMove> finishCallBack;
+    public System.Action<ImageMove> targetPointSet;
     public bool Update()
     {
         if (currAcur.CurveInfos == null)
@@ -37,29 +35,9 @@ public class ImageMove
             return false;
         }
 
+        targetPointSet?.Invoke(this);
         GameObjectPool.own.gameObject.SetActive(true);
-        // if (isShowSize)
-        // {
-        //     currTime += Time.deltaTime * showSizeSpeed;
-        //     float ss = currTime;
-        //     if (ShowSizeCurve != null)
-        //     {
-        //         ss = ShowSizeCurve.Evaluate(currTime);
-        //         transform.localScale = Vector3.one * ss;
-        //     }
-        //
-        //
-        //     Vector3 p = Vector3.Lerp(moveStartPos, moveTargetPos, ss);
-        //     transform.anchoredPosition = p;
-        //     if (currTime >= 1)
-        //     {
-        //         isShowSize = false;
-        //         currTime = 0;
-        //     }
-        //
-        //     return false;
-        // }
-
+      
 
         currTime += Time.deltaTime * speed;
         float ms = currTime;
@@ -82,9 +60,29 @@ public class ImageMove
 
         {
             currAcur.CurveInfos = null;
-            finishCallBack?.Invoke();
+            finishCallBack?.Invoke(this);
+            CObjectPool.Instance.Recycle(this);
         }
 
         return false;
     }
+
+    public override void ActiveObj()
+    {
+      
+    }
+
+    public override void DormancyObj()
+    {
+        GObjectPool.Instance.Recycle(GameObjectPool);
+        GameObjectPool = null;
+        finishCallBack = null;
+        yanChi = 0;
+        currTime = 0;
+        transform = null;
+        moveSpeed = null;
+        SizeCurve = null;
+        currAcur.CurveInfos = null;
+        targetPointSet = null;
+    }
 }

+ 1 - 2
Assets/Scripts/Core/UI/UTool/ImageMoveContainer.cs

@@ -51,7 +51,7 @@ public class ImageMoveContainer
         // gameObjectPool.own.GetComponent<Image>().icon_name = itemConfig.icon;
         currImageMove.transform = gameObjectPool.own.GetComponent<RectTransform>();
         currImageMove.moveStartPos = startPos;
-        currImageMove.moveTargetPos = moveTargetPos;
+      
         // currImageMove.transform.SetParent(root);
         currImageMove.transform.anchoredPosition = currImageMove.moveStartPos;
         currImageMove.yanChi = delay;
@@ -68,7 +68,6 @@ public class ImageMoveContainer
             ImageMove imageMove = allImageMove[i];
             if (imageMove.Update())
             {
-                GObjectPool.Instance.Recycle(imageMove.GameObjectPool);
                 allImageMove.RemoveAt(i);
                 i--;
             }

+ 1 - 0
Assets/Scripts/GameLogic/Combat/CombatEvent/CombatItemShowEventData.cs

@@ -12,5 +12,6 @@ namespace Common.Utility.CombatEvent
         public Vector3 startPos_WorldPos;
         public string showName;
         public bool isExp;
+        public int addValue;
     }
 }

+ 4 - 2
Assets/Scripts/GameLogic/Combat/CombatType/LevelBattleCombatType.cs

@@ -142,10 +142,11 @@ namespace GameLogic.Combat.CombatType
             combatItemShowEventData.startPos_WorldPos = combatHeroEntity.combatHeroGameObject.position;
             combatItemShowEventData.showName = "icon_Coin";
             combatItemShowEventData.isExp = false;
+            combatItemShowEventData.addValue = 5;
             EventManager.Instance.Dispatch(CustomEventType.Combat_ItemShow, combatItemShowEventData);
 
 
-            BagController.Instance.AddCoin(5);
+            
             List<string> allEquip = new List<string>();
             for (int i = 0; i < 3; i++)
             {
@@ -167,13 +168,14 @@ namespace GameLogic.Combat.CombatType
             showTextEventData.worldPos = combatHeroEntity.combatHeroGameObject.position;
             EventManager.Instance.Dispatch(CustomEventType.ShowText, showTextEventData);
 
-            exp += 5;
+            
             BagController.Instance.AddHeroExp(10);
             CombatItemShowEventData expItemShow = CombatItemShowEventData.Create();
             expItemShow.count = Random.Range(3, 5);
             expItemShow.startPos_WorldPos = combatHeroEntity.combatHeroGameObject.position;
             expItemShow.showName = "icon_Energy";
             expItemShow.isExp = true;
+            expItemShow.addValue= 5;
             EventManager.Instance.Dispatch(CustomEventType.Combat_ItemShow, combatItemShowEventData);
             if (exp >= _levelBattleConfig.exp) // 到达目标值,开始打boss
             {

+ 7 - 0
Assets/Scripts/GameUI/Combat/CombatEquipFallManager.cs

@@ -14,6 +14,7 @@ namespace GameLogic.CombatScenesTool
 
     {
         private Transform herobagTran;
+        public Animator BagAnimator;
         public BetterList<EquipFallObject> allEquipFall = new BetterList<EquipFallObject>();
 
         public class EquipFallObject : CObject
@@ -91,6 +92,11 @@ namespace GameLogic.CombatScenesTool
                     GameObjectPool.own.transform.position = position;
                     if (d < 0.3f)
                     {
+                        if (Instance.BagAnimator != null)
+                        {
+                            Instance.BagAnimator.Play("HeroBags_pick");
+                        }
+
                         CombatEquipFallManager.Instance.allEquipFall.Remove(this);
                         CObjectPool.Instance.Recycle(this);
                     }
@@ -106,6 +112,7 @@ namespace GameLogic.CombatScenesTool
                 MainUIPanel mainUIPanel = UIManager.Instance.GetComponent<MainUIPanel>();
 
                 herobagTran = mainUIPanel.herobag.transform;
+                BagAnimator = mainUIPanel.herobag.GetComponent<Animator>();
             }
 
             Vector3 pos = UIManager.Instance.UIWorldToWorld(herobagTran.position);

+ 74 - 69
Assets/Scripts/GameUI/UI/ShowItemMoveTarget/ShowItemMoveToTargetPanel.cs

@@ -3,6 +3,9 @@ using CombatLibrary.CombatLibrary.CombatCore.Utility;
 using Common.Utility.CombatEvent;
 using Fort23.Core;
 using Fort23.UTool;
+using GameLogic.Bag;
+using GameLogic.Combat.CombatTool;
+using GameLogic.Combat.CombatType;
 using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
 using UnityEngine;
 using UnityEngine.UI;
@@ -22,40 +25,6 @@ namespace Fort23.Mono
                     isFocus: false);
         }
 
-        public static async void OpenShowItemMoveToTargetPanel(Vector2 startPos, Vector2 target,
-            bool isStartPosUseWorld, bool isEndPosUseWorld,
-            List<string> allItem)
-        {
-            ShowItemMoveToTargetPanel showItemMoveToTargetPanel =
-                await UIManager.Instance.LoadAndOpenPanel<ShowItemMoveToTargetPanel>(null, UILayer.Top, isFocus: false);
-            if (isStartPosUseWorld)
-            {
-                startPos = showItemMoveToTargetPanel.transform.worldToLocalMatrix * startPos;
-            }
-
-            if (isEndPosUseWorld)
-            {
-                target = showItemMoveToTargetPanel.transform.worldToLocalMatrix * target;
-            }
-
-            showItemMoveToTargetPanel.ShowPanel(startPos, target, allItem.Count, "");
-        }
-
-        public static async void OpenShowItemMoveToTargetPanel(List<string> allItem)
-        {
-            ShowItemMoveToTargetPanel showItemMoveToTargetPanel =
-                await UIManager.Instance.LoadAndOpenPanel<ShowItemMoveToTargetPanel>(null, UILayer.Top, isFocus: false);
-            Vector2 target = showItemMoveToTargetPanel.moveTarget.GetComponent<RectTransform>().anchoredPosition;
-            showItemMoveToTargetPanel.moveTarget.gameObject.SetActive(true);
-            showItemMoveToTargetPanel.ShowPanel(new Vector2(), target, allItem.Count, "");
-        }
-
-        public static async void OpenShowItemMoveToTargetPanel(Vector2 startPos, Vector2 target, List<string> allItem)
-        {
-            ShowItemMoveToTargetPanel showItemMoveToTargetPanel =
-                await UIManager.Instance.LoadAndOpenPanel<ShowItemMoveToTargetPanel>(null, UILayer.Top, isFocus: false);
-            showItemMoveToTargetPanel.ShowPanel(startPos, target, allItem.Count, "");
-        }
 
         private void Init()
         {
@@ -93,41 +62,73 @@ namespace Fort23.Mono
                 combatItemShowEventData.startPos_WorldPos);
             Vector3 p2 = UIManager.Instance.UICamera.ScreenToWorldPoint(p);
             Vector3 startPos = transform.worldToLocalMatrix * p2;
-            ShowPanel(startPos, target, combatItemShowEventData.count, combatItemShowEventData.showName, delegate
-            {
-                MainUIPanel mainUIPanel = UIManager.Instance.GetComponent<MainUIPanel>();
-                if (mainUIPanel == null)
-                {
-                    return;
-                }
+            int maxCount = combatItemShowEventData.count;
+            int addValue = combatItemShowEventData.addValue / maxCount;
+            int finishVale = combatItemShowEventData.addValue % maxCount;
 
-                if (isExp)
+            ShowPanel(startPos, target, maxCount, combatItemShowEventData.showName, isExp,
+                delegate(ImageMove imageMove)
                 {
-                    if (mainUIPanel != null)
+                    MainUIPanel mainUIPanel = UIManager.Instance.GetComponent<MainUIPanel>();
+                    if (mainUIPanel == null)
                     {
-                        ParticleSystemPool particleSystemPool =
-                            GObjectPool.Instance.FetchAsyncForGameObject<ParticleSystemPool>(mainUIPanel.fx_ui_exp,
-                                "fx_ui_exp");
-                        particleSystemPool.transform.SetParent(mainUIPanel.expPoint.transform);
-                        particleSystemPool.transform.localPosition = Vector3.zero;
-                        particleSystemPool.transform.localScale = Vector3.one;
-                        // particleSystemPool.transform.
+                        return;
                     }
-                }
-                else
-                {
-                    if (mainUIPanel != null)
+
+                    int currAddValue = addValue;
+                    if (imageMove.GroupIndex == maxCount - 1)
                     {
-                        ParticleSystemPool particleSystemPool =
-                            GObjectPool.Instance.FetchAsyncForGameObject<ParticleSystemPool>(mainUIPanel.fx_ui_coin,
-                                "fx_ui_coin");
-                        particleSystemPool.transform.SetParent(mainUIPanel.Icon_Coin.transform);
-                        particleSystemPool.transform.localPosition = Vector3.zero;
-                        particleSystemPool.transform.localScale = Vector3.one;
-                        // particleSystemPool.transform.
+                        currAddValue += finishVale;
                     }
-                }
-            });
+
+                    if (isExp)
+                    {
+                        if (mainUIPanel != null)
+                        {
+                            ParticleSystemPool particleSystemPool =
+                                GObjectPool.Instance.FetchAsyncForGameObject<ParticleSystemPool>(mainUIPanel.fx_ui_exp,
+                                    "fx_ui_exp");
+                            particleSystemPool.transform.SetParent(mainUIPanel.expPoint.transform);
+                            particleSystemPool.transform.localPosition = Vector3.zero;
+                            particleSystemPool.transform.localScale = Vector3.one;
+                            LevelBattleCombatType levelBattleCombatType =
+                                CombatController.currActiveCombat.CombatTypeBasic as LevelBattleCombatType;
+                            if (levelBattleCombatType != null)
+                            {
+                                levelBattleCombatType.exp += currAddValue;
+                            }
+                            // particleSystemPool.transform.
+                        }
+                    }
+                    else
+                    {
+                        if (mainUIPanel != null)
+                        {
+                            ParticleSystemPool particleSystemPool =
+                                GObjectPool.Instance.FetchAsyncForGameObject<ParticleSystemPool>(mainUIPanel.fx_ui_coin,
+                                    "fx_ui_coin");
+                            particleSystemPool.transform.SetParent(mainUIPanel.Icon_Coin.transform);
+                            particleSystemPool.transform.localPosition = Vector3.zero;
+                            particleSystemPool.transform.localScale = Vector3.one;
+                            BagController.Instance.AddCoin(currAddValue);
+                            // particleSystemPool.transform.
+                        }
+                    }
+                }, SetTargetPoint);
+        }
+
+        private void SetTargetPoint(ImageMove imageMove)
+        {
+            if (imageMove.isExp)
+            {
+                MainUIPanel mainUIPanel = UIManager.Instance.GetComponent<MainUIPanel>();
+                Vector3 pos = mainUIPanel.expPoint.position;
+                Vector3 target = transform.worldToLocalMatrix * pos;
+                CurveInfo curveInfo = imageMove.currAcur.CurveInfos[1];
+                curveInfo.t = target.x;
+                curveInfo.v = target.y;
+                imageMove.currAcur.CurveInfos[1] = curveInfo;
+            }
         }
 
         protected void RenderUpdateCallBack()
@@ -149,7 +150,8 @@ namespace Fort23.Mono
             }
         }
 
-        public void AddACurve(Vector2 startPos, Vector2 target, string itemConfig, System.Action finishCallBack)
+        public ImageMove AddACurve(Vector2 startPos, Vector2 target, string itemConfig, bool isExp,
+            System.Action<ImageMove> finishCallBack, System.Action<ImageMove> targetPointSet)
         {
             ACurve aCurve = new ACurve();
             CurveInfo curveInfo = new CurveInfo();
@@ -181,8 +183,10 @@ namespace Fort23.Mono
             aCurve.CurveInfos.Add(curveInfo);
             aCurve.CurveInfos.Add(curveInfo2);
             aCurve.CurveType = CurveType.BSL;
-            ImageMove currImageMove = new ImageMove();
+            ImageMove currImageMove = CObjectPool.Instance.Fetch<ImageMove>();
             currImageMove.finishCallBack = finishCallBack;
+            currImageMove.targetPointSet = targetPointSet;
+            currImageMove.isExp = isExp;
             currImageMove.SizeCurve = AnimationCurveManager.Instance.AnimationCurveLibrary.ui_moveSize;
             currImageMove.moveSpeed = AnimationCurveManager.Instance.AnimationCurveLibrary.ui_moveSpped;
             // currImageMove.ShowSizeCurve = AnimationCurveManager.Instance.AnimationCurveLibrary.ui_showSize;
@@ -199,16 +203,16 @@ namespace Fort23.Mono
             currImageMove.transform = gameObjectPool.own.GetComponent<RectTransform>();
             // currImageMove.transform.sizeDelta = new Vector2(35, 35);
             currImageMove.moveStartPos = startPos;
-            currImageMove.moveTargetPos = moveTargetPos;
             currImageMove.transform.anchoredPosition = currImageMove.moveStartPos;
             currImageMove.yanChi = Random.Range(0, 0.5f);
             currImageMove.speed = AnimationCurveManager.Instance.AnimationCurveLibrary.uiMoveSpeed;
             currImageMove.currAcur = aCurve;
             allImageMove.Add(currImageMove);
+            return currImageMove;
         }
 
-        public void ShowPanel(Vector2 startPos, Vector2 target, int count, string showName,
-            System.Action finishCallBack = null)
+        public void ShowPanel(Vector2 startPos, Vector2 target, int count, string showName, bool isExp,
+            System.Action<ImageMove> finishCallBack = null, System.Action<ImageMove> targetPointSet = null)
         {
             if (target.x == -5000)
             {
@@ -217,7 +221,8 @@ namespace Fort23.Mono
 
             for (int i = 0; i < count; i++)
             {
-                AddACurve(startPos, target, showName, finishCallBack);
+                ImageMove imageMove = AddACurve(startPos, target, showName, isExp, finishCallBack, targetPointSet);
+                imageMove.GroupIndex = i;
             }
         }
     }