/// <summary> /// Load a saved level into the scene. This clears the currently open scene. /// </summary> public static void LoadLevel(string levelJson) { if (pb_Scene.nullableInstance != null) { pb_Scene.instance.Clear(); } pb_Scene scene = pb_Scene.instance; pb_SceneNode root_node = (pb_SceneNode)JsonConvert.DeserializeObject <pb_SceneNode>(levelJson, pb_Serialization.ConverterSettings); GameObject root = root_node.ToGameObject(); Transform[] children = new Transform[root.transform.childCount]; int i = 0; foreach (Transform t in root.transform) { children[i++] = t; } foreach (Transform t in children) { t.SetParent(scene.transform); } pb_ObjectUtility.Destroy(root); if (instance.onLevelLoaded != null) { instance.onLevelLoaded(); } }