125 战斗 模型放大后的特效需要跟随放大,放大比例同模型放大比例
10个文件已修改
89 ■■■■ 已修改文件
Main/Component/UI/Effect/BattleEffectPlayer.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleEffectMgr.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleObject/BattleObject.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Buff/BattleObjectBuffMgr.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Skill/RebornSkill.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/BulletSkillEffect.cs 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/DotSkillEffect.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/NoEffect.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/NormalSkillEffect.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/SkillEffect.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 @@
    //  创建后的特效会自动隐藏 需要手动调用Play才能播放
    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;
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;
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
            // {
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);
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、HurtHPEx - 复活回血, CurHP、CurHPEx - 复活后的血量
                targetObj.OnReborn(hitInfo);
            }
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;
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());
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);
            }
        }
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);
            }
        }
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>