From 5a4e34c8a85737c0fa5b5775122da31155cbaef3 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 09 二月 2026 14:46:01 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts

---
 Main/Component/UI/Effect/BattleEffectPlayer.cs |   61 ++++++++++++++++++++++++++----
 1 files changed, 53 insertions(+), 8 deletions(-)

diff --git a/Main/Component/UI/Effect/BattleEffectPlayer.cs b/Main/Component/UI/Effect/BattleEffectPlayer.cs
index 139fc2a..2c7e222 100644
--- a/Main/Component/UI/Effect/BattleEffectPlayer.cs
+++ b/Main/Component/UI/Effect/BattleEffectPlayer.cs
@@ -41,6 +41,8 @@
 
     private float m_Alpha = 1f;
 
+    public float scaleFactor = 1f;//    闀挎湡涓�1锛屽彧鍦ㄩ渶瑕佽窡妯″瀷涓�璧风缉鏀剧殑鏃跺�欐洿鏀� 鍊间负teamHero.ModelScale
+
     public float Alpha
     {
         get
@@ -161,6 +163,8 @@
         //  鏈夌壒鏁堝彲鑳藉甫spine鍙堝甫unity鐗规晥鐨勬儏鍐�
         spineComp = gameObject.GetComponentInChildren<SkeletonAnimation>(true);
 
+
+
         if (effectConfig.effectPos != null && effectConfig.effectPos.Length >= 2)
         {
             rectTrans.anchoredPosition += new Vector2((isRedCamp ? 1f : -1f) * effectConfig.effectPos[0], effectConfig.effectPos[1]);
@@ -170,6 +174,7 @@
         {
             rectTrans.localScale *= effectConfig.effectScale;
         }
+
 
         spineComp.loop = effectConfig.isLoop != 0;
     }
@@ -223,9 +228,14 @@
 
             bool isHeroFront = funcIsHeroFront();
 
-            int finalSortingOrder = isHeroFront ?
-                (isEffectFront ? BattleConst.ActiveHeroActionSortingOrder + 1 : BattleConst.ActiveHeroBackSortingOrder) : (isEffectFront ? BattleConst.UnactiveHeroFrontSortingOrder : BattleConst.UnactiveHeroBackSortingOrder);
+            int baseSortingOrder = isHeroFront ? BattleConst.SkillMaskOrder : BattleConst.BattleBackgroundOrder - BattleConst.BattleFrontHeroEffect - 1;
 
+            //  鍖哄垎鏄惁鍦ㄧ壒鏁堝墠闈� 杩樿鍐嶅尯鍒嗘槸鍚﹀湪UI鍓嶉潰 isBindBone
+            int dynamicOffset = isBindBone 
+                                ? BattleConst.BattleFrontHeroBehindUIEffect : (isEffectFront ? BattleConst.BattleFrontHeroEffect : BattleConst.BattleBehindHeroEffect);
+
+            int finalSortingOrder = baseSortingOrder + dynamicOffset;
+            
 
             blocker.SetSortingOrder(finalSortingOrder);
         }
@@ -378,6 +388,11 @@
         spineComp.Initialize(true);
         spineComp.timeScale = speedRate;
 
+        if (scaleX != 0f && spineComp != null && spineComp.skeleton != null)
+        {
+            spineComp.skeleton.ScaleX = scaleX;
+        }
+
         spineComp.skeleton.A = Alpha;
 
         spineAnimationState = spineComp.state;
@@ -395,10 +410,13 @@
 
         spineComp.timeScale = speedRate;
 
+        spineComp.LateUpdate();
+
+
         Spine.Animation animation = spineAnimationState.Data.SkeletonData.Animations.First();
         spineAnimationState.SetAnimation(0, animation, effectConfig.isLoop != 0);
 
-        SoundPlayer.Instance.PlayUIAudio(effectConfig.audio);
+        // SoundPlayer.Instance.PlayUIAudio(effectConfig.audio);
 
     }
 
@@ -432,7 +450,7 @@
         }
 
         // 浠庣壒鏁堥鍒朵綋姹犺幏鍙栫壒鏁�
-        pool = GameObjectPoolManager.Instance.RequestPool(effectPrefab);
+        pool = GameObjectPoolManager.Instance.GetPool(effectPrefab);
         effectTarget = pool.Request();
         // 璁剧疆鐖惰妭鐐瑰拰浣嶇疆
         effectTarget.transform.SetParent(transform);
@@ -454,7 +472,7 @@
 
         blocker.onSortingChanged = OnSortingChanged;
 
-        SoundPlayer.Instance.PlayUIAudio(effectConfig.audio);
+        // SoundPlayer.Instance.PlayUIAudio(effectConfig.audio);
 
     }
 
@@ -535,7 +553,7 @@
 
 
     //  鍒涘缓鍚庣殑鐗规晥浼氳嚜鍔ㄩ殣钘� 闇�瑕佹墜鍔ㄨ皟鐢≒lay鎵嶈兘鎾斁
-    public static BattleEffectPlayer Create(int effectId, BattleField _battleField, Transform parent, bool isRedCamp)
+    public static BattleEffectPlayer Create(int effectId, BattleField _battleField, Transform parent, bool isRedCamp, float _scaleRatio)
     {
         // 鐩存帴鍒涘缓鐗规晥鎾斁鍣紝涓嶄娇鐢ㄥ璞℃睜
         BattleEffectPlayer battleEffectPlayer = null;
@@ -547,6 +565,8 @@
         battleEffectPlayer.rectTrans = newGo.AddMissingComponent<RectTransform>();
         
         battleEffectPlayer.effectId = effectId;
+
+        battleEffectPlayer.scaleFactor = _scaleRatio;
 
         // 璁剧疆闃佃惀
         battleEffectPlayer.isRedCamp = isRedCamp;
@@ -662,17 +682,28 @@
         }
     }
 
-    public void BindBone(SkeletonAnimation skeletonAnim, string v)
+    public void BindBone(BattleObject battleObject, string v)
     {
-        Bone bone = skeletonAnim.skeleton.FindBone(v);
+        var skeletonAnim = battleObject?.GetSkeletonAnimation();
+        if (skeletonAnim == null)
+        {
+            return;
+        }
 
+        Bone bone = skeletonAnim.skeleton.FindBone(v);
+        isBindBone = false;
+        followedBone = null;
         if (null == bone)
         {
              return;
         }
 
+        rectTrans.localScale *= scaleFactor;
+
         isBindBone = true;
         followedBone = bone;
+
+        ApplySortingOrder();
 
         BoneFollower boneFollower = gameObject.AddMissingComponent<BoneFollower>();
         boneFollower.boneName = v;
@@ -688,4 +719,18 @@
         boneFollower.Initialize();
         boneFollower.LateUpdate();
     }
+
+    private float scaleX = 0f;
+
+    public void SetScaleX(float v)
+    {
+        if (spineComp != null && spineComp.skeleton != null)
+        {
+            spineComp.skeleton.ScaleX = v;
+        }
+        else
+        {
+            scaleX = v;
+        }
+    }
 }

--
Gitblit v1.8.0