Inheritance: MonoBehaviour
 void MyUnit.IGameRule.OnDeath(MyUnit myUnit)
 {
     gameMode.OnDeathMyUnit(myUnit);
 }
 protected virtual void OnDeathMyUnit(MyUnit myUnit)
 {
     gameMode.StartCoroutine(gameMode.GameOverAndRespawnCoroutine(myUnit));
 }
 void MyUnit.IGameRule.OnDeath(MyUnit myUnit)
 {
     gameMode.OnDeathEnemyUnit(myUnit, creatableEnemyIndex);
 }
 protected void OnDeathEnemyUnit(MyUnit myUnit, int creatableEnemyIndex)
 {
     creatableEnemies[creatableEnemyIndex].currentCount--;
     StartCoroutine(DestroyUnitAfterSeconds(myUnit, 1));
     return;
 }
    IEnumerator DestroyUnitAfterSeconds(MyUnit myUnit, float seconds)
    {
        yield return(new WaitForSeconds(seconds));

        Destroy(myUnit.gameObject);
    }
 protected override void OnDeathMyUnit(MyUnit myUnit)
 {
     StartCoroutine(DestroyUnitAfterSeconds(myUnit, 3));
     return;
 }