My overall goal is to make a knockback system for my 2D game. I am able to add a force to an object based on the x and y values that I put in, but I want it to be based on which way the rigidbody is actually moving. Help Please :)

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

public class RedSword : MonoBehaviour {

public float knockback;
public Rigidbody2D rbOfEnemy;
public string nameOfEnemy;
public GameObject gO;

//Knockback direction
public Vector2 kbdir;

void Start () {
void Update ()

private void OnCollisionEnter2D(Collision2D collision)
    nameOfEnemy =;
    gO = GameObject.Find(nameOfEnemy);
    rbOfEnemy = gO.GetComponent<Rigidbody2D>();

    if (collision.collider.tag == "Enemy" )

private void applyKnockback()
{   //I want to find out which direction the object is moving based on the rigidbody (kbdir)
    rbOfEnemy.AddForce(kbdir * knockback * Time.deltaTime);
    Invoke("removeKnockback", .001f);
private void removeKnockback()
    //How do I stop force


in the OnCollisionEnter2D void,

kbdir = collision.transform.GetComponent<Rigidbody2D> ().velocity.normalized;

That should do the trick.