- Home /
 
               Question by 
               joeybbb · Dec 17, 2011 at 11:30 PM · 
                aienemyprojectilecombat  
              
 
              Enemy AI Not Working?
Ok so I have many different varieties of enemies in my game and for some reason, this one isn't working:
 var player : GameObject; 
 var speed : float=6f; 
 var range : float=15f;
 var hitRange : float=6f;
 var enemyDamage : float=10f;
 var rotationSpeed : float=5f;
 var damageTimer : float=0f;
 var delta : Vector3;
 var distance;
 var me : GameObject;
 var projectile : Rigidbody;
 var initialSpeed = 20.0;
 var exit : GameObject;
     function Start()
     {
         player = GameObject.FindGameObjectWithTag("Player");
     }
     
     function Update()
     {
         //calculate the enemy's distance from player and do a check to see if we should 
             //progress then call the necessary methods
     
         distance = Vector3.Distance(transform.position, player.transform.position);
         if(distance<=range)
         {    
             MoveTowards();
             RotateTowards();
             AttackPlayer();
         }
     }
     
     function MoveTowards()
     {
         delta = player.transform.position - transform.position;
         delta.Normalize();
         delta.y = 0;
         if(distance<=(hitRange/1.5))
         {
             return;
         }
         var moveSpeed = speed * Time.deltaTime;
         transform.position = transform.position + (delta * moveSpeed);
     }
     
     function RotateTowards()
     {
         transform.rotation = Quaternion.RotateTowards (transform.rotation, Quaternion.LookRotation(delta), rotationSpeed);
         transform.rotation = Quaternion.Euler(0, transform.eulerAngles.y, 0);
     }
     
     function AttackPlayer()
     {
         damageTimer+=Time.deltaTime;
         if (distance < hitRange && damageTimer>=1.5)
         {
             damageTimer=0f;
             Shot();
         }
     }
     
     function Shot()
     {
         var instantiatedProjectile : Rigidbody = Instantiate (projectile, exit.position, exit.rotation);
                 
             // Give it an initial forward velocity. The direction is along the z-axis of the missile launcher's transform.
             instantiatedProjectile.velocity = exit.TransformDirection(Vector3 (0, 0, initialSpeed));
     
             // Ignore collisions between the missile and the character controller
             Physics.IgnoreCollision(instantiatedProjectile.collider, transform.root.collider);
     }
The enemy does move toward the player just fine but the projectile doesn't instantaniate. Help please???
               Comment
              
 
               
              Answer by ThomasQ · Dec 18, 2011 at 12:06 AM
For
 if (distance < hitRange && damageTimer>=1.5)
Try
 if (distance < hitRange && (damageTimer>=1.5))
Your answer
 
 
             Follow this Question
Related Questions
How do I apply bullet projectile to enemy ai properly on unity3d 0 Answers
How to detect wether an object is headed towards the top or bottom of an object? 2 Answers
Need help trying to make enemy detect player's projectiles 1 Answer
Enemy AI movement problem 1 Answer
Basic sword swing combat 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                