- 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