Enemy AI; Run away from player (x and y)

I need some help with creating a script for the enemies in my game! I’m making a 2.5D game where you chase campers and try to kill them. I’m mostly done with the game, but I can’t get the AI to work! I’ve looked around for scripts and help for a couple of days now but can’t find anything that fits well with the rest of my game… Please help!

For my ground i have a flat surface rotated at 35 on the x-axis, which have worked pretty well for me so far (moving the character around and placing obstacles).

At this point I’m working on this script;

#pragma strict

//Attack button
var attackButton : Joystick;

var anim : Animator;
var delay = 5.0;

//Player can kill
var CanKill = false;

//Score
var scoreValue : int;
var killValue : int;
var playerControl : PlayerControl;

//AI
var speed : int = 2;
var Damp: float = 1.0;

var isRun: boolean = false;
var Target: Transform;

var detectionRange: int = 5;

private var character : CharacterController;

function Start () 
{

	anim = GetComponent("Animator");
	var playerControlObject : GameObject = GameObject.FindWithTag ("Player");
	
	character = GetComponent(CharacterController);


}

function WaitAndDestroy()
{

	yield WaitForSeconds(delay);
		Destroy (gameObject);
		
}

function Update()
{

	//Can the player kill?
	if (attackButton.tapCount == 1)
		CanKill = true;
		
	else CanKill = false; 
	
	//AI
	var FromPlayer =  Vector3(Target.position.x - transform.position.x, 0);
	
		if(FromPlayer.magnitude <= detectionRange){
			isRun = true;
		}
		
		if(FromPlayer.magnitude >= detectionRange) {
			isRun = false;
		}
		
		if(isRun) {
			RunAway();
			anim.SetBool("Walk", true);
		}
		
		else anim.SetBool("Walk", false);
		
		
}

function OnTriggerEnter (Other : Collider){

	if(Other.gameObject.tag == "Player" && CanKill == true) {
		playerControl.AddScore (scoreValue);
		playerControl.AddKills (killValue);
		anim.SetTrigger("Dead");
		WaitAndDestroy();
	}
	
}

function RunAway()
{
	
	var moveDirection : Vector3 = transform.position;
	character.Move(moveDirection.normalized * speed * Time.deltaTime);
	
}`

Which kinda works, but for some reason the character stops in the middle of the level and just runs in place… I would also like him to turn and run the other direction if I (the player) catches him and runs in front of him. (If the code is a little messy I apologize, but as I said I’m new to Javascript).

I suggest you google “Steering Behaviors”.

Thats the kind of Ai you want for something like this.

For an example of steering behaviors implemented in Unity you can look at my Tag example on the page
for my AI course:

http://unseenu.wikispaces.com/aiclass

The class slides contain a lecture about that code.