Exemplo n.º 1
0
    public static void ExportSprite()
    {
        string sourcePath = HS_Path.CombinePath("Assets", "SubAssets", "Raw", "Sprite");
        string targetPath = HS_Path.CombinePath("Assets", "SubAssets", "Res", "Prefabs", "Sprite");

        string[] allFolders = AssetDatabase.GetSubFolders(sourcePath);
        for (int i = 0; i < allFolders.Length; i++)
        {
            string[] pathDatas = HS_Path.SplitPath(allFolders[i]);
            string   tagName   = pathDatas[pathDatas.Length - 1];
            string[] allAssets = AssetDatabase.FindAssets("t:Sprite", new string[] { allFolders[i] });
            for (int j = 0; j < allAssets.Length; j++)
            {
                string          assetPath = AssetDatabase.GUIDToAssetPath(allAssets[j]);
                TextureImporter ti        = TextureImporter.GetAtPath(assetPath) as TextureImporter;
                FormatTexture(ti, tagName);

                Sprite     sprite = AssetDatabase.LoadAssetAtPath <Sprite>(assetPath);
                GameObject go     = new GameObject(sprite.name);
                go.AddComponent <SpriteRenderer>().sprite = sprite;

                if (!AssetDatabase.IsValidFolder(HS_Path.CombinePath(targetPath, tagName)))
                {
                    AssetDatabase.CreateFolder(targetPath, tagName);
                }
                string prefabPath = HS_Path.CombinePath(HS_Path.CombinePath(targetPath, tagName), sprite.name + ".prefab");
                PrefabUtility.CreatePrefab(prefabPath, go);
                GameObject.DestroyImmediate(go);
            }
        }

        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        Debug.Log("Done!");
    }
Exemplo n.º 2
0
    public static void SetPackingTagBatch()
    {
        string resPath = HS_Path.CombinePath("Assets", "SubAssets", "Raw", "UI");

        string[] allFolders = AssetDatabase.GetSubFolders(resPath);
        for (int i = 0; i < allFolders.Length; i++)
        {
            string[] pathDatas = HS_Path.SplitPath(allFolders[i]);
            string   tagName   = pathDatas[pathDatas.Length - 1];
            string[] allAssets = AssetDatabase.FindAssets("t:Sprite", new string[] { allFolders[i] });
            for (int j = 0; j < allAssets.Length; j++)
            {
                string          assetPath = AssetDatabase.GUIDToAssetPath(allAssets[j]);
                TextureImporter ti        = TextureImporter.GetAtPath(assetPath) as TextureImporter;
                FormatTexture(ti, tagName);
            }
        }

        AssetDatabase.SaveAssets();
        AssetDatabase.Refresh();
        Debug.Log("Done!");
    }