public static void OnPostprocessScene() { if (!Application.isPlaying) { SVGBuildProcessor.ProcessScene(); } }
private static void ProcessScene() { GameObject[] allObjects = GameObject.FindObjectsOfType <GameObject>(); List <SVGBasicAtlas> unexportedAtlases = new List <SVGBasicAtlas>(); // scan all game objects in the current scene, and keep track of used atlas generators foreach (GameObject gameObj in allObjects) { if (gameObj.activeInHierarchy) { SVGSpriteLoaderBehaviour loader = gameObj.GetComponent <SVGSpriteLoaderBehaviour>(); if (loader != null) { // if this atlas has not been already flagged, lets keep track of it if (!loader.Atlas.Exporting) { unexportedAtlases.Add(loader.Atlas); loader.Atlas.Exporting = true; } } SVGUISpriteLoaderBehaviour uiLoader = gameObj.GetComponent <SVGUISpriteLoaderBehaviour>(); if (uiLoader != null) { // if this atlas has not been already flagged, lets keep track of it if (!uiLoader.UIAtlas.Exporting) { unexportedAtlases.Add(uiLoader.UIAtlas); uiLoader.UIAtlas.Exporting = true; } } SVGCanvasBehaviour uiCanvas = gameObj.GetComponent <SVGCanvasBehaviour>(); if (uiCanvas != null) { // if this atlas has not been already flagged, lets keep track of it if (!uiCanvas.UIAtlas.Exporting) { unexportedAtlases.Add(uiCanvas.UIAtlas); uiCanvas.UIAtlas.Exporting = true; } } } } foreach (SVGBasicAtlas baseAtlas in unexportedAtlases) { SVGBuildProcessor.ProcessAtlas(baseAtlas); // keep track of this atlas in the global list SVGBuildProcessor.m_Atlases.Add(baseAtlas); } }