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