Before updating to Windows 10 you may need to return your Pro license. More information here


Hello. This is my current Zombie AI but it just going through walls and fly. How can i fix this ?

 var target : Transform; //the enemy's target
 var moveSpeed = 3; //move speed
 var rotationSpeed = 3; //speed of turning
 var attackThreshold = 1.5; // distance within which to attack
 var chaseThreshold = 10; // distance within which to start chasing
 var giveUpThreshold = 20; // distance beyond which AI gives up
 var attackRepeatTime = 1; // delay between attacks when within range
 private var chasing = false;
 private var attackTime = Time.time;
 var myTransform : Transform; //current transform data of this enemy
 function Awake()
     myTransform = transform; //cache transform data for easy access/preformance 
 function Start()
      target = GameObject.FindWithTag("Player").transform; //target the player
 function Update (){    
     // check distance to target every frame:
     var distance = (target.position - myTransform.position).magnitude;
     if (chasing) {    
         //rotate to look at the player
         myTransform.rotation = Quaternion.Slerp(myTransform.rotation,
         Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed*Time.deltaTime);
         //move towards the player
         myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
         // give up, if too far away from target:
         if (distance > giveUpThreshold)
             chasing = false;
         // attack, if close enough, and if time is OK:
         if (distance < attackThreshold && Time.time > attackRepeatTime) {
             // Attack! (call whatever attack function you like here)
         if (distance < attackThreshold) {
             //stop when close enough
             attackTime = Time.time+ attackRepeatTime;
     else {
         // not currently chasing.
         // start chasing if target comes close enough
         if (distance < chaseThreshold) {
             chasing = true;
 function OnTriggerEnter (other: Collider) {
     if (other.gameObject.CompareTag("Bullet")){

Please Help


more ▼

asked Jun 24, 2012 at 04:52 PM

avatar image

117 21 27 33

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

2 answers: sort voted first

Modifications of transform.position do not apply with physic. You need to use a character controller or a rigidbody, then move it with Move or AddForce.

more ▼

answered Jun 24, 2012 at 06:30 PM

avatar image

13.9k 47 52 119

This is maby an stupid question.. But can u edit the script so its work with rigidbody please? :) Im new to Scripting :D WOULD BE AWESOME


Jun 25, 2012 at 12:44 PM SLIMEBASS

The only relevant part is

 //move towards the player
 myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime

which should be

 //move towards the player
 myRigidbody.AddForce( myTransform.forward * moveSpeed * Time.deltaTime );
Jun 25, 2012 at 03:02 PM Berenger

im attempting to use this script and i get the error: Unknown identifier: 'myRigidbody'. Do I need to define it somewhere else or change other parts of the script? thanks.

Jul 31, 2013 at 07:26 PM oj1999
(comments are locked)
10|3000 characters needed characters left

Add a collider to your zombie, a capsule collider would be a good one. This will stop them from going through the wall, and if this happened, it'll stop him from going through you!

more ▼

answered Mar 12, 2014 at 08:31 AM

avatar image

10 2

(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



Answers and Comments



asked: Jun 24, 2012 at 04:52 PM

Seen: 7150 times

Last Updated: Mar 12, 2014 at 08:31 AM