public void LoadScenario(string folder, bool observer = false)
 {
     scenarioFolder = folder;
     scenario       = null;
     this.observe   = observer;
     try {
         var  files  = Directory.GetFiles(folder);
         bool nojson = true;
         foreach (string f in files)
         {
             if (Path.GetExtension(f) == ".json")
             {
                 if (scenario == null)
                 {
                     scenario = Scenario.LoadJson(File.ReadAllText(Path.Combine(folder, f)));
                     nojson   = false;
                 }
                 else
                 {
                     scenario.AddJson(File.ReadAllText(Path.Combine(folder, f)));
                 }
             }
         }
         if (scenario == null)
         {
             if (nojson)
             {
                 DebugText.LogError("No scenario in folder: " + folder);
             }
             else
             {
                 DebugText.LogError("Could not load scenario from folder: " + folder);
             }
             UnloadScenario();
         }
     }
     catch (Exception e)
     {
         DebugText.LogError("Could not load scenario from folder: " + folder);
         Debug.LogException(e);
         UnloadScenario();
     }
     if (scenario == null)
     {
         UnloadScenario();
     }
     else if (scenario.scenes.Length == 0)
     {
         DebugText.LogError("No scenes found in folder: " + folder);
         UnloadScenario();
     }
     else
     {
         scenario.InitScenes();
         startScene = 0;
         if (!observer)
         {
             logger.StartLogging(scenarioFolder);
             stateManager.EnterScenario();
         }
         else
         {
             gameObject.SetActive(true);
         }
         SwitchScene((Scene)null);
     }
 }