I want to kill an enemy with a certain number of shots and to give a score afterwards.
I have 2 scripts:
KillMegaloth
-
kills in 1 shot
-
gives correct score
public GameObject objectToDestroy;
public GameObject effect;public int scoreValue = 100;
//public AudioClip DeathAudio;AudioSource enemyAudio;
void OnTriggerEnter (Collider col)
{
if (col.gameObject.tag == “Bullet”){ Instantiate (effect, objectToDestroy.transform.position, objectToDestroy.transform.rotation); ScoreManager.score += scoreValue; Destroy (objectToDestroy, 1f); Debug.Log ("Megaloth destroyed"); }
}
EnemyManager
-
kills in 2 shots
-
takes away life
-
gives wrong score
-
the effect upon death is created 34 times in quick succession
public int MaxHealth = 100;
public int currentHealth;
public int scoreValue;public GameObject objectToDestroy;
public GameObject effect;// Use this for initialization
void Start () {
currentHealth = MaxHealth;
}public void TakeDamage(int damage)
{
currentHealth -= damage;
Debug.Log (“Megaloth injured”);
}// Update is called once per frame
void Update () {if (currentHealth == 0) { Instantiate (effect, objectToDestroy.transform.position, objectToDestroy.transform.rotation); ScoreManager.score += scoreValue; Destroy (objectToDestroy, 1f); // NB: When the number of frames before destruction is removed, the Megaloth disappears right away and only 1 death fire is created. Debug.Log ("Megaloth destroyed"); }
}
}
I’m at a loss as to what could be going wrong, any suggestions?