I want to destroy a missile from a rocket launcher after the object it was targeting got destroyed from another tower.
missile control script
using UnityEngine;
using System.Collections;
public class MissileControl : MonoBehaviour {
public GameObject target;
public float speed = 2f;
public ParticleSystem explosionEffect;
EnemyHealthManager enemyHealth;
MissileLauncherTargettingSystem missileGameObject;
void Start() {
enemyHealth = target.GetComponent<EnemyHealthManager> ();
}
// Update is called once per frame
void Update () {
if (target != null) {
transform.LookAt (target.transform.position);
transform.position = Vector3.MoveTowards (transform.position, target.transform.position, Time.deltaTime * speed);
if (Vector3.Distance (target.transform.position, transform.position) < 0.1f) {
Instantiate (explosionEffect, transform.position, Quaternion.identity);
enemyHealth.ReduceHealth (30f);
Destroy (gameObject);
}
}
}
}
rocket launcher script
using UnityEngine;
using System.Collections;
public class MissileLauncherTargettingSystem : TurretTargettingSystem {
float lastFired;
public float fireDelay = 4f;
public GameObject missileGameObject;
override public void Start() {
lastFired = Time.time;
base.Start ();
}
override public void MaybeFire() {
if (Time.time > lastFired + fireDelay) {
// Instantiate Missile
Vector3 instantionPosition = transform.position + (transform.forward * 0.4f);
GameObject missile = Instantiate(missileGameObject, instantionPosition, Quaternion.identity) as GameObject;
MissileControl missileControl = missile.GetComponent<MissileControl> ();
missileControl.target = currentTarget;
lastFired = Time.time;
}
}
override public void EngagedTarget() {
}
override public void DisengagedTarget() {
}
}