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); } }