how to avoid enemies pushing me when they reach me

Hi everyone. This is my first question so I'm sorry if it's not posted propertly. And I'm sorry for my bad english too.

I have a little test game, where the enemy starts chasing the main character (the player) when he gets in a certain distance. (at the end of the post is the script of the enemy). The thing is that when the enemy reaches the player, he keeps walking forward and pushing the player. It even pushes it upward, so the enemy start walking and pushing the character in the air!

How can I avoid this? I do not have the action decided, but I would like to know how to stop it, no matter what happens later (if the player dies, or just start talking with the enemy).

Thanks everyone.

Here's the script of the enemy (it's based in a few answers I found here):

var LookAtTarget:Transform;
var speed : float = 3;
var proximity : float = 3;

function Update(){
    var dist = Vector3.Distance(LookAtTarget.transform.position, transform.position);

        //check whether you are within target proximity
    if (dist < proximity ) {
        animation.Play("threaten");
        transform.LookAt (LookAtTarget); //you look at player with this
        transform.Translate (0,0,speed*Time.deltaTime); 
//moves with speed in local z and you are looking toward him so you move toward the player
//write other codes here
    }
    else {
        animation.Play("idle");
    }    
}

use another variable, maxDistance = 0.3; then change your statement from

if (dist < proximity ) {

to

if (dist < proximity && dist > maxDistance ) {

or optimally make a check just for the translate.

you may also want to check the Hack n Slash tutorial http://www.burgzergarcade.com/hack-slash-rpg-unity3d-game-engine-tutorial it's a great series of video tutorials, really worth the time.