Unity UGUI 图片生成Sprite预制

[MenuItem("Tools/AtlasMaker")]
        static private void MakeAtlas()
        {
            string spriteDir = Application.dataPath + "/Resources/Sprite";
            string curDirPath = "";

            if (Directory.Exists(spriteDir))
            {
                Directory.Delete(spriteDir, true);
            }
            Directory.CreateDirectory(spriteDir);

            DirectoryInfo rootDirInfo = new DirectoryInfo(Application.dataPath + "/Atlas");
            foreach (DirectoryInfo dirInfo in rootDirInfo.GetDirectories())
            {
                foreach (FileInfo pngFile in dirInfo.GetFiles("*.png", SearchOption.AllDirectories))
                {
                    string allPath = pngFile.FullName;
                    string midDirPath = pngFile.DirectoryName.Substring(allPath.IndexOf("Atlas"));
                    midDirPath = midDirPath.Replace("\\", "/").Replace("Atlas", "");
                    curDirPath = spriteDir + midDirPath;
                    if (!Directory.Exists(curDirPath))
                    {
                        Directory.CreateDirectory(curDirPath);
                    }
                    string assetPath = allPath.Substring(allPath.IndexOf("Assets"));
                    Sprite sprite = AssetDatabase.LoadAssetAtPath<Sprite>(assetPath);
                    if (sprite == null)
                    {
                        Debug.LogError("无法找到Sprite:" + assetPath);
                        continue;
                    }

                    GameObject go = new GameObject(sprite.name);
                    go.AddComponent<SpriteRenderer>().sprite = sprite;
                    PrefabUtility.CreatePrefab("Assets/Resources/Sprite/" + midDirPath + "/" + sprite.name + ".prefab", go, ReplacePrefabOptions.ConnectToPrefab);
                    GameObject.DestroyImmediate(go);
                }

                AssetDatabase.SaveAssets();
            }

        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值