x


getting enemys to follow character.

right iv got my enemy following my characters when he comes into range. im using two scripts:

var player : GameObject; var speed : float = 1;

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

 if (!player)
      Debug.Log ("ERROR could not find Player!");

}

function Update() { if (!player) return;

 var distance = Vector3.Distance( player.transform.position, transform.position);

 if ( distance < 20  )
 {
      Debug.Log ("player is close");

      var delta = player.transform.position - transform.position;
      delta.Normalize();

      var moveSpeed = speed * Time.deltaTime;

      transform.position = transform.position + (delta * moveSpeed);
}
else
{
      Debug.Log("not close yet " + distance);
}

}

and

var minimumRunSpeed = 2.0;

function Start () { // Set all animations to loop animation.wrapMode = WrapMode.Loop;

animation["idle"].layer = -1;
animation["walk"].layer = -1;

animation.Stop();

}

function SetSpeed (speed : float) { if (speed > minimumRunSpeed) animation.CrossFade("walk"); else animation.CrossFade("idle"); }

my enemy follows me but im stuck with a few things, hoping someone can help me out. first of all the enemy doesn't face me, secondly i dont know how to get his animations playing (i have 2 animations idle, and walk) and he walks through objects too. all help appreciated

more ▼

asked Apr 23 '10 at 06:41 PM

KarlH gravatar image

KarlH
18 7 7 9

(comments are locked)
10|3000 characters needed characters left

1 answer: sort oldest

you can write a much simpler code

var player:GameObject;
function Update()
{
transform.LookAt (player.transform); //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
}

i don't understand your question about animations but you can start walk animation when you move with CrossFade method and start idle when you don't move.

more ▼

answered Apr 23 '10 at 06:49 PM

Ashkan_gc gravatar image

Ashkan_gc
9.3k 33 56 120

thanks for the quick reply. iv tried using the code but im getting an error at (4,18). iv got my character tagged as player. : /

Apr 23 '10 at 07:12 PM KarlH

thank you! iv got it to work now i changed it to

var LookAtTarget:Transform; function Update() { transform.LookAt (LookAtTarget); //you look at player with this transform.Translate (0,0,5*Time.deltaTime); //moves with speed in local z and you are looking toward him so you move toward the player //write other codes here }

Apr 23 '10 at 08:02 PM KarlH

oh yes i takes a transform as an argument.

Apr 24 '10 at 05:33 AM Ashkan_gc
(comments are locked)
10|3000 characters needed characters left
Your answer
toggle preview:

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Topics:

x983
x39

asked: Apr 23 '10 at 06:41 PM

Seen: 3190 times

Last Updated: Apr 23 '10 at 06:41 PM