public void HandleMessage(string msg) { if (msg == "idle") { text.Show("Waiting for scenario selection"); scenarioManager.gameObject.SetActive(false); } else if (msg == "disconnect") { Disconnect(); } else { try { MessageData ndata = new MessageData(msg); if (!scenarioManager.gameObject.activeSelf || ndata.scenario != data.scenario) { scenarioManager.LoadScenario(Path.Combine(fileExplorer.dataFolder, ndata.scenario), true); } if (data.scene != ndata.scene) { scenarioManager.SwitchScene(ndata.scene == "" ? null : ndata.scene); if (data.permutation != ndata.permutation) { scenarioManager.SetPermutationNumber(ndata.permutation); } } if (string.IsNullOrEmpty(ndata.scene)) { text.Hide(); } data = ndata; } catch (Exception e) { data = new MessageData(this); Debug.Log("Could not parse data " + e.ToString()); } } }