OnEnable() isn't getting called after reloading a scene

Hey everyone!

I want to ask for some help in my project. It works this way:

Is kind of a tower defense game where I need to defend the base against spiders, and I have a system based on waves. A wave has properties like duration, maximum number of spiders, etc. When the wave ends, the script which controls it is disabled and reenabled when the player press the ‘next wave’ button.

Then, the OnEnable is called in the WaveControl script and I have a lot of important things going on in the OnEnable function and the problem comes when I loose the game and need to restart it.

So, when I click ‘try again’, the scene is reloaded but the problem is that the OnEnable function of WaveControl isn’t called anymore! Even if I enable/disable it by hand, I can’t get a simple print I putted in the function.

Anyone has an idea of what could be the problem?

Thanks from now!!

Here we go:

This is the OnEnable method of WaveControl:

void OnEnable () {
  if(_curWave == null) {
    _curWave = new Wave();
    _curWaveIndex = 0;
    _curWave = waves[_curWaveIndex];
  } else {
    changeWave ();
  }
  _posWave = false;
  _posEndWaveDuration = 0;
  if(onWaveStarted != null) onWaveStarted();
    userInterface.OnWaveStarted();
  if(_spiderInstantiator != null) 
    _spiderInstantiator.enabled = true;
  if(_inGameInterface != null) 
    _inGameInterface.enabled = true;
  if(_aircraftInstantiator != null)
    _aircraftInstantiator.enabled = true;
}

Remembering, in the first time I play the game everything runs ok, but when I restart the scene while in-game mode, the OnEnable() doesn’t get called anymore.
As everyone can see, is a very simple code, just enabling some instantiators and changing the current wave.