public static JEScene TraverseScene() { var scene = new JEScene(); List <GameObject> root = new List <GameObject>(); // Unity has no root object, so collect root game objects this way object[] objects = GameObject.FindObjectsOfType(typeof(GameObject)); foreach (object o in objects) { GameObject go = (GameObject)o; if (go.transform.parent == null) { root.Add(go); } } if (root.Count == 0) { ExportError.FatalError("Cannot Export Empty Scene"); } // traverse the "root" game objects, collecting child game objects and components foreach (var go in root) { scene.rootGameObjects.Add(Traverse(go)); } return(scene); }
static void reset() { JEResource.Reset(); JEComponent.Reset(); JEScene.Reset(); JEGameObject.Reset(); JEComponent.RegisterStandardComponents(); }
public static JSONScene GenerateJSONScene() { // reset the exporter in case there was an error, Unity doesn't cleanly load/unload editor assemblies reset(); JEScene.sceneName = Path.GetFileNameWithoutExtension(EditorApplication.currentScene); JEScene scene = JEScene.TraverseScene(); scene.Preprocess(); scene.Process(); scene.PostProcess(); JSONScene jsonScene = scene.ToJSON() as JSONScene; reset(); return(jsonScene); }