Unity资源打包

static void resetAssetBundle()
    {
        string[] names = AssetDatabase.GetAllAssetBundleNames();
        foreach (string name in names)
        {
            string[] paths = AssetDatabase.GetAssetPathsFromAssetBundle(name);
            foreach (string path in paths)
            {
                AssetImporter imp = AssetImporter.GetAtPath(path);
                imp.assetBundleName = null;
            }
            AssetDatabase.RemoveAssetBundleName(name, true);
        }
    }

    static void SetBundleNames(string filter,string prefabDir)
    {
        string dirName;
        string[] prefabs;
        dirName = Path.GetFileName(prefabDir);
        prefabs = AssetDatabase.FindAssets(filter, new string[] { prefabDir });

        foreach (string prefab in prefabs)
        {
            string path = AssetDatabase.GUIDToAssetPath(prefab);
            AssetImporter importer = AssetImporter.GetAtPath(path);
            string name = path.Substring(prefabDir.Length + 1);
            name = Path.Combine(Path.GetDirectoryName(name) , Path.GetFileNameWithoutExtension(name));
            //Debug.Log(name);
            importer.assetBundleName = dirName.ToLower() + "/" + name;// dirName.ToLower() + "/" + System.IO.Path.GetFileNameWithoutExtension(path);
        }
    }

    static void SetPrefabsBundleNames(string prefabDir)
    {
        SetBundleNames("t:prefab", prefabDir);
    }

    [MenuItem("Tools/打包资源")]
    public static void BuildResource()
    {
        string assetBundleDirectory = "Assets/AssetBundles/Win64";
        if (!Directory.Exists(assetBundleDirectory))
        {
            Directory.CreateDirectory(assetBundleDirectory);
        }

        resetAssetBundle();

        SetBundleNames("t:Texture2D", "Assets/Resources/fightwindow");
        SetPrefabsBundleNames("Assets/Resources/ui");

        BuildPipeline.BuildAssetBundles(assetBundleDirectory, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值