public void Die(DeathReason reason) { if (isDead) { return; } isDead = true; Instantiate(soul, transform.position + Vector3.down * 1.5f, Quaternion.identity); Debug.Log("I died from " + reason); score.Deactivate(); GameObject go = Instantiate(deathPrefabs[(int)reason], transform.position, Quaternion.identity); if (go.GetComponent <Animator>()) { Destroy(go, go.GetComponent <Animator>().runtimeAnimatorController.animationClips[0].length); } if (reason == DeathReason.SMASH) { go.transform.Translate(Vector3.up * 1f); } GetComponent <SpriteRenderer>().enabled = false; GetComponent <Collider2D>().enabled = false; map.StartCoroutine(map.ReloadGame()); Destroy(gameObject); }