Rigidbody2D's Velocity is zero but Object still moves

Hey , I’m new to programming.

I faced a problem with my script , my Rigidbody2D’s velocity is always 0, it’s supposed to be facingRight =1 or -facingRight=-1 (from another script) but here its 0 even if if still moves.

Here is the script :

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DamagedState : EnemyBaseState
{
    public float KBForce;
    public Vector2 KBAngle;

    private float stunTime = 1;
    private bool isStunned;

    public DamagedState(Enemy enemy, string animationName) : base(enemy, animationName)
    {

    }

    public override void Enter()
    {
        base.Enter();

        ApplyKnockback();
    }

    public override void Exit()
    {
        base.Exit();
    }

    public override void LogicUpdate()
    {
        base.LogicUpdate();

        if(isStunned)
        {
            if (Time.time > enemy.stateTime + stunTime)
            {
                isStunned = false;

                Debug.Log("Enemy velocity = " + enemy.rb.velocity.x);
                int forceDirection = enemy.rb.velocity.x > 0 ? 1 : -1;

                if(enemy.facingRight != forceDirection) 
                    enemy.Rotate();

                enemy.SwitchState(enemy.chargeState);
            }
        }
        
    }

    public override void AnimationFinishedTrigger()
    {
        base.AnimationFinishedTrigger();

        enemy.rb.velocity = new Vector2(enemy.rb.velocity.x, -enemy.rb.velocity.y);
        isStunned = true;
    }


    private void ApplyKnockback()
    {
        enemy.rb.velocity = KBAngle * KBForce;
    }
}