private void OnImportButton() { if (IsFormValid()) { JArray json = PreParseJson(); if (json != null) { //folder to store sprites spriteFolderPath = SpriteImport.CreateFolder(spriteAssetSubFolder); //create sprites foreach (JToken artboard in json) { PreCreateSprites((JObject)artboard); } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); //make sure that all textures are imported as sprites (even in 3d) SpriteImport.SetTexturesToSprites(spriteFolderPath); //parse json artboards Undo.RegisterFullObjectHierarchyUndo(rootTransform, "Import Layers"); foreach (JToken artboard in json) { Parse((JObject)artboard, rootTransform, Vector2.zero); } //finish by refreshing all the assets AssetDatabase.Refresh(); } } }
private void OnTestButton() { if (GUILayout.Button("Test Button", GUILayout.Height(30))) { //string importPath = "C:/Users/lange/Documents/Unity/_Assets/FramerPrototypes/Roulette/MixedFidelity3.framer/imported/test@1x/images/Layer-selected-mtg3oeiy.png"; //string path = "Assets/ExampleSprite3D.png"; //File.Copy(importPath, path); //AssetDatabase.Refresh(); ////AssetDatabase.AddObjectToAsset(sprite, path); //needed? //AssetDatabase.SaveAssets(); //TextureImporter ti = AssetImporter.GetAtPath(path) as TextureImporter; ////ti.spritePixelsPerUnit = sprite.pixelsPerUnit; //ti.textureType = TextureImporterType.Sprite; ////ti.mipmapEnabled = false; //EditorUtility.SetDirty(ti); //ti.SaveAndReimport(); //AssetImporter. //TODO reimport folder or everyone on GetSprite? SpriteImport.SetTexturesToSprites("Assets/Imported/sprites 11"); } }
void StartBatchImport(DirectoryInfo dirInfo, Palette palette) { IEnumerable <FileInfo> files = IOTools.GetFilesByExtensions(dirInfo, extensions); foreach (FileInfo f in files) { // relative pfad angabe string currentSpritePath = f.FullName.Substring(Application.dataPath.Length - "Assets".Length); Debug.Log("Found " + currentSpritePath); Sprite currentSprite = null; TextureImporter spriteImporter = null; spriteImporter = TextureImporter.GetAtPath(currentSpritePath) as TextureImporter; if (spriteImporter == null) { Debug.LogError(currentSpritePath + " TextureImporter == null "); continue; // skip this character } else { currentSprite = AssetDatabase.LoadAssetAtPath(spriteImporter.assetPath, typeof(Sprite)) as Sprite; // PerformMetaSlice previewPosition.y--; SpriteImport.ImportCharacter(currentSprite, palette, true, previewPosition); } } }
private void OnGUI_SingleAutoImport() { if (GUILayout.Button("Import")) { SpriteImport.ImportCharacter(rawSpritesheet, palette, fShowCreatedSprites, previewPosition); previewPosition.y -= 1.5f; } fShowCreatedSprites = GUILayout.Toggle(fShowCreatedSprites, "Show created Sprites"); previewPosition = EditorGUILayout.Vector3Field("World Position", previewPosition); }
private void OnGUI_SingleStepByStepImport() { if (GUILayout.Button("SetImportSettings")) { rawSpritesheet = SpriteImport.SetRawCharacterSpriteSheetTextureImporter(rawSpritesheet, true, false, false); } if (GUILayout.Button("CreatePNG")) { preparedSpritesheet = SpriteImport.CreateGenericCharacterSpriteSheet(rawSpritesheet); } preparedSpritesheet = EditorGUILayout.ObjectField("Prepared Character Spritesheet", preparedSpritesheet, typeof(Sprite), false) as Sprite; if (preparedSpritesheet != null) { Rect controlRect = EditorGUILayout.GetControlRect(true, preparedSpritesheet.texture.height, GUILayout.ExpandWidth(false)); EditorGUI.DrawTextureTransparent(controlRect, preparedSpritesheet.texture); GUI.enabled = true; } else { GUI.enabled = false; } slectedTeam = (Teams)EditorGUILayout.EnumPopup("Team", slectedTeam); if (slectedTeam == Teams.count) { slectedTeam = Teams.yellow; } if (GUILayout.Button("Create " + slectedTeam + " Team Spritesheet")) { preparedTeamSpritesheet = SpriteImport.CreateTeamSpritesheetAsset((int)slectedTeam, AssetDatabase.GetAssetPath(preparedSpritesheet), preparedSpritesheet.texture, palette); } preparedTeamSpritesheet = EditorGUILayout.ObjectField("Prepared Team Spritesheet", preparedTeamSpritesheet, typeof(Sprite), false) as Sprite; if (preparedTeamSpritesheet != null) { Rect controlRect = EditorGUILayout.GetControlRect(true, preparedTeamSpritesheet.texture.height, GUILayout.ExpandWidth(false)); EditorGUI.DrawTextureTransparent(controlRect, preparedTeamSpritesheet.texture); GUI.enabled = true; } else { GUI.enabled = false; } fTest = EditorGUILayout.Foldout(fTest, "Test with temp Spritesheet"); if (fTest) { OnGUI_Test(); } }
private void PreCreateSprites(JObject json) { //SPRITE JToken jsonImage = json["image"]; if (jsonImage != null && jsonImage.Type != JTokenType.Null) { string localImagePath = (string)jsonImage["path"]; SpriteImport.CreateSprite(localImagePath, importFolder, spriteFolderPath); } //CHILDREN JArray children = (JArray)json["children"]; for (int i = children.Count - 1; i >= 0; --i) { PreCreateSprites((JObject)children[i]); } }
private void Parse(JObject json, RectTransform parent, Vector2 parentPos) { string name = (string)json["name"]; //instantiate //Image image = PrefabUtility.InstantiatePrefab(imagePrefab) as Image; //still linked to the prefab Image image = Instantiate <Image>(imagePrefab); image.name = name; image.rectTransform.SetParent(parent, false); JToken jsonFrame = null; //SPRITE AND SIZE JToken jsonImage = json["image"]; if (jsonImage != null && jsonImage.Type != JTokenType.Null) { //layers.Add(name, image); jsonFrame = jsonImage["frame"]; string localImagePath = (string)jsonImage["path"]; Sprite spr = SpriteImport.GetSprite(localImagePath, spriteFolderPath); if (spr != null) { image.sprite = spr; image.SetNativeSize(); //visibility (invisible -> disabled image component) JToken jsonVisible = json["visible"]; if (jsonVisible != null) { //float alpha = (bool)jsonVisible ? 1f : 0f; //image.color = new Color(255f, 255f, 255f, alpha); if (!(bool)jsonVisible) { image.enabled = false; } } } } else { if ("artboard" == (string)json["kind"]) { image.color = ParseColor((string)json["backgroundColor"]); } else { image.enabled = false; } jsonFrame = json["layerFrame"]; image.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, (float)jsonFrame["width"]); image.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, (float)jsonFrame["height"]); } //POSITION if (jsonFrame == null) { Debug.LogError("json entry without frame"); return; } float x = (float)jsonFrame["x"] * importScale; float y = (float)jsonFrame["y"] * importScale; Vector2 globalPos = new Vector2(x, -y); Vector2 localPos = globalPos - parentPos; //TODO really needed? buggy for multiple artboards image.rectTransform.anchoredPosition = localPos; //CHILDREN JArray children = (JArray)json["children"]; for (int i = children.Count - 1; i >= 0; --i) { Parse((JObject)children[i], image.rectTransform, globalPos); } }