From b08df57a6fa2b5f52c6772c7f78e0ec915efdce3 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 08 十二月 2025 16:47:04 +0800
Subject: [PATCH] 125 战斗 模型放大后的特效需要跟随放大,放大比例同模型放大比例

---
 Main/System/Battle/SkillEffect/NormalSkillEffect.cs |    8 ++--
 Main/System/Battle/SkillEffect/NoEffect.cs          |    8 ++--
 Main/System/Battle/BattleObject/BattleObject.cs     |    2 
 Main/System/Battle/Skill/RebornSkill.cs             |    2 
 Main/System/Battle/SkillEffect/DotSkillEffect.cs    |    2 
 Main/System/Battle/BattleEffectMgr.cs               |    6 +-
 Main/System/Battle/Buff/BattleObjectBuffMgr.cs      |    2 
 Main/System/Battle/SkillEffect/SkillEffect.cs       |    6 +-
 Main/System/Battle/SkillEffect/BulletSkillEffect.cs |   42 ++++++++++----------
 Main/Component/UI/Effect/BattleEffectPlayer.cs      |   11 ++++-
 10 files changed, 48 insertions(+), 41 deletions(-)

diff --git a/Main/Component/UI/Effect/BattleEffectPlayer.cs b/Main/Component/UI/Effect/BattleEffectPlayer.cs
index 6faac2c..da2f8bb 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
@@ -170,6 +172,8 @@
         {
             rectTrans.localScale *= effectConfig.effectScale;
         }
+
+        rectTrans.localScale *= scaleFactor;
 
         spineComp.loop = effectConfig.isLoop != 0;
     }
@@ -535,7 +539,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 +551,8 @@
         battleEffectPlayer.rectTrans = newGo.AddMissingComponent<RectTransform>();
         
         battleEffectPlayer.effectId = effectId;
+
+        battleEffectPlayer.scaleFactor = _scaleRatio;
 
         // 璁剧疆闃佃惀
         battleEffectPlayer.isRedCamp = isRedCamp;
@@ -665,7 +671,8 @@
     public void BindBone(SkeletonAnimation skeletonAnim, string v)
     {
         Bone bone = skeletonAnim.skeleton.FindBone(v);
-
+        isBindBone = false;
+        followedBone = null;
         if (null == bone)
         {
              return;
diff --git a/Main/System/Battle/BattleEffectMgr.cs b/Main/System/Battle/BattleEffectMgr.cs
index a93f8a7..d03cae1 100644
--- a/Main/System/Battle/BattleEffectMgr.cs
+++ b/Main/System/Battle/BattleEffectMgr.cs
@@ -3,7 +3,7 @@
 using System.Linq;
 using UnityEngine;
 
-public class BattleEffectMgr : MonoBehaviour
+public class BattleEffectMgr
 {
     private BattleField battleField;
 
@@ -62,7 +62,7 @@
         }
     }
 
-    public BattleEffectPlayer PlayEffect(BattleObject layerDepender, int effectId, Transform parent, BattleCamp camp)
+    public BattleEffectPlayer PlayEffect(BattleObject layerDepender, int effectId, Transform parent, BattleCamp camp, float _scaleRatio)
     {
         if (effectId <= 0)
         {
@@ -84,7 +84,7 @@
 
         bool isRedCamp = camp == BattleCamp.Red;
 
-        BattleEffectPlayer effectPlayer = BattleEffectPlayer.Create(effectId, battleField, battleField.battleRootNode.transform, isRedCamp);
+        BattleEffectPlayer effectPlayer = BattleEffectPlayer.Create(effectId, battleField, battleField.battleRootNode.transform, isRedCamp, _scaleRatio);
         // 璁剧疆鐗规晥缂╂斁鍜屾柟鍚�
 
         effectPlayer.transform.position = parent.position;
diff --git a/Main/System/Battle/BattleObject/BattleObject.cs b/Main/System/Battle/BattleObject/BattleObject.cs
index f0b173b..89a2560 100644
--- a/Main/System/Battle/BattleObject/BattleObject.cs
+++ b/Main/System/Battle/BattleObject/BattleObject.cs
@@ -351,7 +351,7 @@
         {
             if (dmgInfo.IsType(DamageType.Block))
             {
-                battleField.battleEffectMgr.PlayEffect(this, BattleConst.BlockEffectID, heroRectTrans, Camp);
+                battleField.battleEffectMgr.PlayEffect(this, BattleConst.BlockEffectID, heroRectTrans, Camp, teamHero.modelScale);
             }
             // else
             // {
diff --git a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
index 4e34649..b86db9b 100644
--- a/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
+++ b/Main/System/Battle/Buff/BattleObjectBuffMgr.cs
@@ -272,7 +272,7 @@
             else
             {
                 BattleEffectPlayer effect = battleObject.battleField.battleEffectMgr
-                    .PlayEffect(battleObject, skillConfig.BuffEffect, battleObject.heroRectTrans, battleObject.Camp);
+                    .PlayEffect(battleObject, skillConfig.BuffEffect, battleObject.heroRectTrans, battleObject.Camp, battleObject.teamHero.modelScale);
 
                 effect.BindBone(battleObject.motionBase.skeletonAnim, effect.effectConfig.nodeName);
 
diff --git a/Main/System/Battle/Skill/RebornSkill.cs b/Main/System/Battle/Skill/RebornSkill.cs
index 6cf73d9..0d3d0c0 100644
--- a/Main/System/Battle/Skill/RebornSkill.cs
+++ b/Main/System/Battle/Skill/RebornSkill.cs
@@ -22,7 +22,7 @@
 			BattleObject targetObj = battleField.battleObjMgr.GetBattleObject((int)hitInfo.ObjID);
 			if (targetObj != null)
 			{
-				targetObj.battleField.battleEffectMgr.PlayEffect(targetObj, BattleConst.RebornEffectID, targetObj.heroRectTrans, targetObj.Camp);
+				targetObj.battleField.battleEffectMgr.PlayEffect(targetObj, BattleConst.RebornEffectID, targetObj.heroRectTrans, targetObj.Camp, targetObj.teamHero.modelScale);
 				// B427涓� tagSCUseSkillHurt 涓哄娲荤殑鐩爣锛�  HurtHP銆丠urtHPEx - 澶嶆椿鍥炶锛� CurHP銆丆urHPEx - 澶嶆椿鍚庣殑琛�閲�
 				targetObj.OnReborn(hitInfo);
 			}
diff --git a/Main/System/Battle/SkillEffect/BulletSkillEffect.cs b/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
index d01967a..ee71f5e 100644
--- a/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
@@ -172,7 +172,7 @@
     private void ShotToIndex(BattleCamp camp, int targetIndex, int bulletIndex)
     {
         RectTransform targetTransform = caster.battleField.GetTeamNode(camp, targetIndex);
-        BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp);
+        BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp, caster.teamHero.modelScale);
 
         RectTransform effectTrans = effectPlayer.transform as RectTransform;
 
@@ -186,8 +186,8 @@
 
             BattleCamp battleCamp = skillConfig.TagFriendly != 0 ? caster.Camp : caster.GetEnemyCamp();
             //  棣栧厛鏄洰鏍囪韩涓婄垎鐐�
-            PlayExplosionEffect(skillConfig.ExplosionEffectId, targetTransform, caster.Camp);
-            PlayExplosionEffect(skillConfig.ExplosionEffect2, targetTransform, caster.Camp);
+            PlayExplosionEffect(skillConfig.ExplosionEffectId, targetTransform, caster.Camp, 1f);
+            PlayExplosionEffect(skillConfig.ExplosionEffect2, targetTransform, caster.Camp, 1f);
 
             foreach (var hurt in hitList)
             {
@@ -198,8 +198,8 @@
                     continue;
                 }
 
-                PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp);
-                PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp);
+                PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
             }
 
             // 琛ㄧ幇瀛愬脊椋炶鍒扮洰鏍囦綅缃�
@@ -328,7 +328,7 @@
 
     private void ScatterShot(BattleObject target, HB427_tagSCUseSkill.tagSCUseSkillHurt hurt, int bulletIndex, int order)
     {
-        BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp);
+        BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp, caster.teamHero.modelScale);
 
         bool shotToSelf = target.ObjID == caster.ObjID;
 
@@ -348,10 +348,10 @@
                     continue;
                 }
 
-                PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp);
-                PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp);
-                PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp);
-                PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp);
+                PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
             }
 
             // 琛ㄧ幇瀛愬脊椋炶鍒扮洰鏍囦綅缃�
@@ -374,7 +374,7 @@
 
     protected void ShotToTarget(BattleObject target, int bulletIndex)
     {
-        BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp);
+        BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp, caster.teamHero.modelScale);
 
         bool shotToSelf = target.ObjID == caster.ObjID;
 
@@ -396,10 +396,10 @@
                 BattleObject targetObj = caster.battleField.battleObjMgr.GetBattleObject((int)hurt.ObjID);
                 if (targetObj != null)
                 {
-                    PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp);
-                    PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp);
-                    PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp);
-                    PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp);
+                    PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                    PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                    PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                    PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
                 }
                 else
                 {
@@ -433,10 +433,10 @@
                         continue;
                     }
 
-                    PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp);
-                    PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp);
-                    PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp);
-                    PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp);
+                    PlayExplosionEffect(skillConfig.ExplosionEffectId, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                    PlayExplosionEffect(skillConfig.ExplosionEffect2, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                    PlayExplosionEffect(skillConfig.ExplosionEffect3, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
+                    PlayExplosionEffect(skillConfig.ExplosionEffect4, targetObj.heroGo.transform, caster.Camp, targetObj.teamHero.modelScale);
                 }
 
                 // 琛ㄧ幇瀛愬脊椋炶鍒扮洰鏍囦綅缃�
@@ -462,12 +462,12 @@
 
     
 
-    protected void PlayExplosionEffect(int effectId, Transform parent, BattleCamp camp)
+    protected void PlayExplosionEffect(int effectId, Transform parent, BattleCamp camp, float _scaleRatio)
     {
         if (effectId <= 0)
             return;
 
-        var effect = caster.battleField.battleEffectMgr.PlayEffect(caster, effectId, parent, camp);
+        var effect = caster.battleField.battleEffectMgr.PlayEffect(caster, effectId, parent, camp, _scaleRatio);
         if (effect != null)
         {
             effect.transform.localRotation = parent.localRotation;
diff --git a/Main/System/Battle/SkillEffect/DotSkillEffect.cs b/Main/System/Battle/SkillEffect/DotSkillEffect.cs
index 823bac3..1ee81b9 100644
--- a/Main/System/Battle/SkillEffect/DotSkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/DotSkillEffect.cs
@@ -31,7 +31,7 @@
                 Debug.LogError($"DotSkillEffect 鎵句笉鍒扮洰鏍囷紝GUID={hurtInfo.ObjID}");
                 continue;
             }
-            target.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.TriggerEffect, target.heroRectTrans, caster.Camp);
+            target.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.TriggerEffect, target.heroRectTrans, caster.Camp, target.teamHero.modelScale);
         }
 
         onHit?.Invoke(0, tagUseSkillAttack.HurtList.ToList());
diff --git a/Main/System/Battle/SkillEffect/NoEffect.cs b/Main/System/Battle/SkillEffect/NoEffect.cs
index 6f0c5c2..288f87b 100644
--- a/Main/System/Battle/SkillEffect/NoEffect.cs
+++ b/Main/System/Battle/SkillEffect/NoEffect.cs
@@ -30,12 +30,12 @@
 
         if (skillConfig.ExplosionEffectId > 0)
         {
-            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.ExplosionEffectId, targetTransform, caster.Camp);
+            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.ExplosionEffectId, targetTransform, caster.Camp, 1f);
         }
 
         if (skillConfig.ExplosionEffect2 > 0)
         {
-            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.ExplosionEffect2, targetTransform, caster.Camp);
+            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.ExplosionEffect2, targetTransform, caster.Camp, 1f);
         }
 
         for (int i = 0; i < tagUseSkillAttack.HurtList.Length; i++)
@@ -50,11 +50,11 @@
 
             if (skillConfig.ExplosionEffect3 > 0)
             {
-                caster.battleField.battleEffectMgr.PlayEffect(target, skillConfig.ExplosionEffect3, target.heroGo.transform, caster.Camp);
+                caster.battleField.battleEffectMgr.PlayEffect(target, skillConfig.ExplosionEffect3, target.heroGo.transform, caster.Camp, target.teamHero.modelScale);
             }
             if (skillConfig.ExplosionEffect4 > 0)
             {
-                caster.battleField.battleEffectMgr.PlayEffect(target, skillConfig.ExplosionEffect4, target.heroGo.transform, caster.Camp);
+                caster.battleField.battleEffectMgr.PlayEffect(target, skillConfig.ExplosionEffect4, target.heroGo.transform, caster.Camp, target.teamHero.modelScale);
             }
         }
 
diff --git a/Main/System/Battle/SkillEffect/NormalSkillEffect.cs b/Main/System/Battle/SkillEffect/NormalSkillEffect.cs
index ae1fa16..97e9dd7 100644
--- a/Main/System/Battle/SkillEffect/NormalSkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/NormalSkillEffect.cs
@@ -29,12 +29,12 @@
 
         if (skillConfig.ExplosionEffectId > 0)
         {
-            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.ExplosionEffectId, targetTransform, caster.Camp);
+            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.ExplosionEffectId, targetTransform, caster.Camp, 1f);
         }
 
         if (skillConfig.ExplosionEffect2 > 0)
         {
-            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.ExplosionEffect2, targetTransform, caster.Camp);
+            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.ExplosionEffect2, targetTransform, caster.Camp, 1f);
         }
 
         for (int i = 0; i < tagUseSkillAttack.HurtList.Length; i++)
@@ -49,11 +49,11 @@
 
             if (skillConfig.ExplosionEffect3 > 0)
             {
-                caster.battleField.battleEffectMgr.PlayEffect(target, skillConfig.ExplosionEffect3, target.heroGo.transform, caster.Camp);
+                caster.battleField.battleEffectMgr.PlayEffect(target, skillConfig.ExplosionEffect3, target.heroGo.transform, caster.Camp, target.teamHero.modelScale);
             }
             if (skillConfig.ExplosionEffect4 > 0)
             {
-                caster.battleField.battleEffectMgr.PlayEffect(target, skillConfig.ExplosionEffect4, target.heroGo.transform, caster.Camp);
+                caster.battleField.battleEffectMgr.PlayEffect(target, skillConfig.ExplosionEffect4, target.heroGo.transform, caster.Camp, target.teamHero.modelScale);
             }
         }
 
diff --git a/Main/System/Battle/SkillEffect/SkillEffect.cs b/Main/System/Battle/SkillEffect/SkillEffect.cs
index f588b5b..e0d4e11 100644
--- a/Main/System/Battle/SkillEffect/SkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/SkillEffect.cs
@@ -29,11 +29,11 @@
         onHit = _onHit;
         if (skillConfig.EffectId > 0)
         {
-            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.EffectId, caster.heroRectTrans, caster.Camp);
+            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.EffectId, caster.heroRectTrans, caster.Camp, caster.teamHero.modelScale);
         }
         if (skillConfig.EffectId2 > 0)
         {
-            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.EffectId2, caster.heroRectTrans, caster.Camp);
+            caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.EffectId2, caster.heroRectTrans, caster.Camp, caster.teamHero.modelScale);
         }
     }
 
@@ -52,7 +52,7 @@
         if (skillConfig.MStartEffectId <= 0)
             return;
         //  涓憞鍥哄畾鐗规晥
-        caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.MStartEffectId, caster.heroGo.transform, caster.Camp);
+        caster.battleField.battleEffectMgr.PlayEffect(caster, skillConfig.MStartEffectId, caster.heroGo.transform, caster.Camp, caster.teamHero.modelScale);
     }
     
     /// <summary>

--
Gitblit v1.8.0