I'm making a game where 1-4 enemies follow me. I want to make the Enemy AI's move at different speeds, so they won't combine and become one ball. How do I do that? Do I make 4 different scripts, one for each enemy? Thanks in advance

using UnityEngine;
using System.Collections;

public class Enemy_AI : MonoBehaviour 
{

	Transform tr_Player;
	float f_RotSpeed=3.0f,f_MoveSpeed = 3.0f;
	
	// Use this for initialization
	void Start () 
	{
		
		tr_Player = GameObject.FindGameObjectWithTag ("Player").transform; 
	}
	
	// Update is called once per frame
	void Update () 
	{
		/* Look at Player*/
		transform.rotation = Quaternion.Slerp (transform.rotation , Quaternion.LookRotation (tr_Player.position - transform.position) , f_RotSpeed * Time.deltaTime);
		
		/* Move at Player*/
		transform.position += transform.forward * f_MoveSpeed * Time.deltaTime;
	}
}

Local avoidance (of static obstacles, or other NPCs) AI is commonly achieved using steering behaviours. Co-ordination of squad behaviours to avoid flocking too closely together or “queuing” to get through a narrow gap sometimes requires a leader that sets orders for the other members of the group.

There’s plenty of examples on the net to get you started, try: