- Home /
Enemy Ai Problem with the collider and gravity
Hello Unity3d Community i have a problem.. my enemy floats in the air while chasing the player, i'v trieda few things like making a rigidbody and locking the "Y"axis but it doesnt look good, when i'm close the enemy the enemy it laysdown underneath the player. if i use the rigidbody it falls through the floor but if i attach a boxcollider it flies around like crazy, any help??
i just want the enemy to stand on the ground, and stand up until it dies, anyways heres the enemy's AI:
 var Distance : float;
 var Target : Transform;
 var lookAtDistance = 25.0;
 var chaseRange = 15.0;
 var attackRange = 1.5;
 var moveSpeed = 5.0;
 var Damping = 6.0;
 var attackRepeatTime = 1;
 var body : Transform;
 
 private var attackTime : float;
 
 var controller : CharacterController;
 var gravity : float = 20.0;
 private var MoveDirection : Vector3 = Vector3.zero;
 
 function Start ()
 {
     attackTime = Time.time;
 }
 
 function Update ()
 {
     Distance = Vector3.Distance(Target.position, transform.position);
     //transform.position.y=-62.25803;
     
     if (Distance < lookAtDistance)
     {
         lookAt();
     }
     
     if (Distance > lookAtDistance)
     {
         renderer.material.color = Color.green;
     }
     
     if (Distance < attackRange)
     {
         attack();
     }
     else if (Distance < chaseRange)
     {
         chase ();
     }
     else if (Distance > chaseRange)
     {
         body.animation.CrossFade("idle");
     }
 }
 
 function lookAt ()
 {
     renderer.material.color = Color.yellow;
     var rotation = Quaternion.LookRotation(Target.position - transform.position);
     transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * Damping);
 }
 
 function chase ()
 {
     body.animation.CrossFade("walk");
     renderer.material.color = Color.red;
     transform.Translate(Vector3.forward * moveSpeed *Time.deltaTime);
     
 }
 
 function attack ()
 {
     if (Time.time > attackTime)
     {
         body.animation.CrossFade("punch");
         Debug.Log("Insert attack here");
         attackTime = Time.time + attackRepeatTime;
     }
 }
 
 function ApplyDammage ()
 {
     //body.animation.Play("cubebla");
     chaseRange += 30;
     moveSpeed += 2;
     lookAtDistance += 40;
 }
 
Answer by Stormizin · May 22, 2013 at 07:45 PM
You can set a terrain collision to avoid the falling of your character.
Your answer
 
 
             Follow this Question
Related Questions
Multiple Cars not working 1 Answer
how to add gravity to this script 2 Answers
Enemy Collision Wont Work! PLEASE HELP 0 Answers
Enemy gets through wall over time, colliders working. 1 Answer
FPS Problem Help! 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                