- Home /
Problem with the enemy
Hi friends UNITY 3D. I have a problem with my enemy. My first script to shoot the enemy in the leg rather than shooting from his cannon placed on the arm. In the second script from the enemy shoots the gun because I entered an empty created by calling (Spawn) and I placed in front of the cannon. When I put the first script he shoots the enemy by the legs. When I put only the second script on the side of the gun then shoot it properly. Now I would ask if he could join the first script with the latter raising the part that shoots from the legs and the ax that shoots only the second script in the correct way then? Thanks in advance. :-)
First script
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 + nextFire;
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--; }
Second Script
var bullitprefab : Transform; var savedTime=0; function Update () { var seconds : int = Time.time; var oddeven = (seconds % 30);
if(oddeven) { Shoot(seconds); } }
function Shoot(seconds) {
if(seconds!=savedTime)
{ var bullit = Instantiate(bullitprefab, transform.Find("Spawn"). transform.position,Quaternion.identity);
bullit.rigidbody.AddForce(transform.forward * 6000);
savedTime=seconds;
} }
Your answer
Follow this Question
Related Questions
Shoot Bullet Delay Enemy 0 Answers
How do i spawn an enemy but with a randomized direction everytime it spawns? 1 Answer
enemy shoots with animation 1 Answer
Troubles With A Shoot Script 1 Answer
Enemy trigger for player 1 Answer