yyl
2025-10-28 cf4c463b222d57486671191652a6bf06a49349c0
Main/System/Battle/BattleObject/BattleObject.cs
@@ -87,6 +87,8 @@
        buffMgr = new BattleObjectBuffMgr();
        buffMgr.Init(this);
        buffMgr.onIsControlChanged += OnControledChange;
        layerMgr = new BattleObjectLayerMgr();
        layerMgr.Init(this);
@@ -127,6 +129,7 @@
        motionBase.Release();
        motionBase = null;
        buffMgr.onIsControlChanged -= OnControledChange;
        buffMgr.Release();
        buffMgr = null;
        teamHero = null;
@@ -136,6 +139,24 @@
        {
            GameObject.DestroyImmediate(heroGo);
            heroGo = null;
        }
    }
    //  有变化了才会调用这个函数
    private void OnControledChange(int groupType, bool value)
    {
        //  这里是受到硬控时候 需要表现的动画
        if (groupType == BattleConst.HardControlGroup)
        {
            //  从没被硬控到被硬控
            if (value)
            {
                motionBase.SetControledAnimation();
            }
            else
            {
                motionBase.CancelControledAnimation();
            }
        }
    }
@@ -280,7 +301,7 @@
        //  这里
        if (dmgInfo.IsType(DamageType.Dodge))
        if (dmgInfo.IsType(DamageType.Dodge) && !buffMgr.isControled[BattleConst.HardControlGroup])
        {
            if (isLastHit)
            {
@@ -317,7 +338,10 @@
            {
                if ((dmgInfo.IsType(DamageType.Damage) || dmgInfo.IsRealdamage()))
                {
                    motionBase.PlayAnimation(MotionName.hit, false);
                    if (!buffMgr.isControled[BattleConst.HardControlGroup])
                    {
                        motionBase.PlayAnimation(MotionName.hit, false);
                    }
                }
            }