following enemies simple AI problem

I’m using the most simple AI for my enemies, but it has some problems. Enemies follows the character and after some time they goes to one place. I don’t know how to explain it, so I made a simple scene, here is the video(imagine spheres are enemies):
http://img201.imageshack.us/img201/6026/e1jkgkfvdbucbsqnfrxmcn.mp4(sorry for poor quality). Here is the code:

	public GameObject characterObject;
	void Update()
	{
		transform.position = Vector3.MoveTowards(transform.position, characterObject.transform.position, 3 * Time.deltaTime);
	}

any ideas how can I avoid that? I would like to fix it without rigidbody. Hope someone will help :).

There is no bug, per se. It is doing what you told it to do. Every enemy is trying to reach the same point, moving at the same speed. That point moves, but still they are all essentially going to always end up on top of each other.

To avoid it you need more more variables in the system. For example, varying speeds of enemies might help some. But beyond that, you probably want some sort of steering behavior to try and keep them apart.

You might want to check out UnitySteer on github for a solution.

Most simple way would be to go with:

public Transform player;
public float speed;
void Update(){
  transform.LookAt(player);
  transform.Translate(0,0,1*speed)
}

If you feel like learning basic of NPC AI you can have a look there:

You could just stop them a bit away from the final destination but that would still keep them piling up one way is to check if there is something in front of the bot using ray trace and if there is stop the movement. That would not add much complexity to the game and keep overhead down to a minimum.
I hope this help.