Cannot delay player respawn.

I am using this script for my game in order to respawn when I die but when I try to delay the respawn with yield nothing happens.
Can anyone help me ?

using UnityEngine;
 using System.Collections;

  public class HealthScript : MonoBehaviour {

	public int hp = 1;
	public bool isEnemy = true;
	public void Damage(int damageCount)

		hp -= damageCount;
		if (hp <= 0)
		// 'Splosion!
			// Dead!

IEnumerator RestartLevel(){

	yield return new WaitForSeconds(2);



	void OnTriggerEnter2D(Collider2D otherCollider)
	// Is this a shot?
	BulletScript1 shot = otherCollider.gameObject.GetComponent<BulletScript1> ();
	if (shot != null) {
		// Avoid friendly fire
		if (shot.isEnemyShot != isEnemy) {
			Damage (shot.damage);
			// Destroy the shot
			Destroy (shot.gameObject); 


you’re destroying the game object which this scripts runs on, so it won’t be able to do anything. if you’re reloading the level, then i believe that all game objects will be destroyed automagically, so don’t destroy it… or, to be a good citizen, destroy it right before the load level.

@gif Do you know how I could code that ? I tried something but it seems that it does not work.