im creating a top-down shooter and i cant find a way to have the enemy shoot at the player...what im trying to do is have the enemy rotate towards the player and then shoot bullets every few seconds...this is the enemy script that i currently have...everything works fine but the firing...any ideas or suggestions pleaseeeee
var lookAtTarget : Transform;
var speed : int;
var range : int;
var damp : float;
var ENEMY_HEALTH = 30;
var nextFire = 1;
private var fireRate = 0.0;
var enemyBullet : Transform;
var death : Transform ;
var health : Transform;
function Awake()
{
if (!lookAtTarget)
{
lookAtTarget = GameObject.FindWithTag("Player").transform;
}
}
function Update()
{
if(ENEMY_HEALTH <= 0)
{
Instantiate(death, transform.position, transform.rotation);
Instantiate(health, transform.position, transform.rotation);
Debug.Log("DEAD");
Destroy(gameObject);
}
if(lookAtTarget && CanAttackTarget())
{
//transform.LookAt(lookAtTarget);
var rotate = Quaternion.LookRotation(lookAtTarget.transform.position - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation, rotate, damp);
transform.Translate (0,0,speed*Time.deltaTime);
if(Time.time >= nextFire)
{
nextFire = Time.time + fireRate;
var bullet = Instantiate(enemyBullet, transform.position, transform.rotation);
bullet.rigidbody.velocity = transform.forward * speed;
}
}
}
function CanAttackTarget()
{
//check if in range
if(Vector3.Distance(transform.position, lookAtTarget.position) > range)
{
return false;
}
return true;
}
function OnParticleCollision ()
{
Debug.Log("hit");
ENEMY_HEALTH--;
}