2D Wall Jumping.

I followed a tutorial about implementing a wall jump but one thing that doesn’t work is getting the character pushed on the opposite side of the wall when pressing the jump button. As it is, character is only jumping on the y axis upwards on the wall.

private bool IsWalled()
{
return Physics2D.OverlapCircle(wallCheck.position, 0.4f, wallLayer);
}

private void WallSlide()
{
    if (IsWalled() && !IsGrounded())
    {
        anim.SetTrigger("WallSlide");
        isWallSliding = true;
        rb.velocity = new Vector2(rb.velocity.x, Mathf.Clamp(rb.velocity.y, -wallSlidingSpeed, float.MaxValue));
    }
    else
    {
        anim.SetTrigger("WallSlideOf");
        isWallSliding = false;
    }
}

private void WallJump()
{
    if (isWallSliding)
    {
        isWallJumping = false;
        wallJumpingDirection = transform.localScale.x;
        wallJumpingCounter = wallJumpingTime;

        CancelInvoke(nameof(StopWallJumping));
    }
    else
    {
        wallJumpingCounter -= Time.deltaTime;
    }

    if (Input.GetButtonDown("Jump") && wallJumpingCounter > 0f)
    {
        isWallJumping = true;
        rb.velocity = new Vector2(wallJumpingDirection * wallJumpingPower.x, wallJumpingPower.y);
        wallJumpingCounter = 0f;
       
        Invoke(nameof(StopWallJumping), wallJumpingDuration);
    }
}

private void StopWallJumping()
{
    isWallJumping = false;
}

What I have done for this is use isTouching() or a raycast to the side to see if the player is touching a wall when jumping, then if they are when I jump I add force for the x velocity as well.