Trying to Lerp knock-back on Character Controller

Hey guys.

I’m trying to Lerp and smooth out a movement for my melee weapons.
Its a top-down shooter style game.

Here’s my melee script.

	public void OnTriggerEnter(Collider other) 
	{
		Vector3 dir = other.transform.position - transform.position;
		dir.y = 0;

		if (other.rigidbody) 
		{ 
			if(swinging)
			{
				other.rigidbody.AddForce (dir.normalized * force);
			}
		}

		if (other.gameObject.tag == "Enemy") 
		{
			var aiHealth = other.gameObject.GetComponent<ZombieDeathScript>();

			if(swinging)
			{
				CharacterController controller = other.gameObject.GetComponent<CharacterController>();
				aiScript = other.gameObject.GetComponent<AIFollow>();

				Vector3 bashDir = other.transform.TransformDirection(Vector3.back);

				other.transform.position = Vector3.Lerp(transform.position, transform.position + bashDir, pushSpeed);
				//controller.SimpleMove(bashDir * Time.deltaTime * pushSpeed);

				aiScript.speed = 2.5f;
				aiHealth.health -= damage;
				audio.clip = sounds[Random.Range(0,sounds.Length)];
				audio.Play();
				Invoke("ResetSpeed", 2);
			}
		}
	}

	void ResetSpeed ()
	{
		aiScript.speed = 5;
	}

The problem is, the knock-back is instant, I want it to knock the enemy back slowly.
The enemies use Character Controllers, I had them as rigidbodies before, but recently changed. And that’s why I’m asking for some help. :slight_smile:

Take a look at the solution in Object push character controller - Unity Answers

impact = Vector3.Lerp(impact, Vector3.zero, 5*Time.deltaTime);

This will slow down the knock back.