Example #1
0
    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();
            }
        }
    }
Example #2
0
    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");
        }
    }
Example #3
0
    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);
            }
        }
    }
Example #4
0
    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);
    }
Example #5
0
    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();
        }
    }
Example #6
0
    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]);
        }
    }
Example #7
0
    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);
        }
    }