Unity Move towards with space

I have a script which makes the character move towards the player when close enough. when the character moves towards me eventualy it is inside me. how can i make some spacing between me and my character.

var player : GameObject;
var moveSpeed : float = 10;
var detectDistance : float = 10;

function Start () {
	player = GameObject.FindGameObjectWithTag("Player");
}

function Update () {
	var distance = Vector3.Distance(gameObject.transform.position, player.transform.position);
	if(distance <= detectDistance){
		Debug.DrawLine(player.transform.position, gameObject.transform.position, Color.red);
		gameObject.transform.LookAt(player.transform);
		gameObject.transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime, Space.Self);
	}else{
		Debug.DrawLine(player.transform.position, gameObject.transform.position, Color.green);
	}
}

The typical solution to these kinds of problems is to use colliders and either a Rigidbody or a CharacterController for movement. Both are totally different approaches to the movement problem. To answer the question you asked, in the top of the file put:

var minDistance : float = 1.5;

The change line 11 to:

if (distance <= detectDistance && distance >= minDistance){

The use of 1.5 for ‘minDistance’ is just a guess. Adjust for your situation.