I have a missile script where i look for a target and then chase toward it but, after the target was remove the script giving me this error
NullReferenceException: Object reference not set to an instance of an object
Missile.FindClosestEnemy () (at Assets/Scripts/Player_Scripts/Missile.cs:63)
Missile.Start () (at Assets/Scripts/Player_Scripts/Missile.cs:19)
{
public string searchTag;
private GameObject closetMissile;
public Transform target;
public GameObject missileExpObject;
public int _dmg;
void Start ()
{
closetMissile = FindClosestEnemy ();
if (closetMissile)
target = closetMissile.transform;
//if (target == null) {
// Destroy (this.gameObject);
//transform.position = Vector3.up * 10f * Time.deltaTime;
// } else {
//}
}
void Update ()
{
if (target != null) {
Vector3 dir = target.transform.position - transform.position;
float angle = Mathf.Atan2 (dir.y, dir.x) * Mathf.Rad2Deg - 90;
transform.rotation = Quaternion.AngleAxis (angle, Vector3.forward);
//transform.Translate (Vector3.forward * 5.0f * Time.deltaTime);
Rigidbody rig = GetComponent<Rigidbody> ();
rig.velocity = transform.position = Vector3.MoveTowards (transform.position, target.transform.position, 10f * Time.deltaTime);
} else {
}
}
GameObject FindClosestEnemy ()
{
GameObject gos;
gos = GameObject.FindGameObjectWithTag (searchTag);
GameObject closest = null;
float distance = Mathf.Infinity;
Vector3 position = transform.position;
Vector3 diff = gos.transform.position - position;
float curDistance = diff.sqrMagnitude;
if (curDistance < distance) {
closest = gos;
distance = curDistance;
}
return closest;
}