예제 #1
0
        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);
        }
예제 #2
0
        static void reset()
        {
            JEResource.Reset();
            JEComponent.Reset();
            JEScene.Reset();
            JEGameObject.Reset();

            JEComponent.RegisterStandardComponents();
        }
예제 #3
0
        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);
        }