201808111226->关于所有一个assetsname对应一个包以及多个assetsname对应一个包

13 篇文章 0 订阅

        /// <summary>
        /// 单独打包
        /// 
        /// 所有资源分开单独打包
        /// </summary>
        [UnityEditor.MenuItem("Version AssetsBundle Build/source single build assetsbundle")]
        public static void VersionAssetsBundle()
        {
            //todo
            //获取全路径
            Object[] allassets = Selection.GetFiltered<Object>(SelectionMode.Assets);
            string path = Application.dataPath + "/StreamingAssets";

            foreach (Object item in allassets)
            {
                //单独打包的话不需要使用assetsbuildoptions,
                BuildPipeline.BuildAssetBundles(path, BuildAssetBundleOptions.None, BuildTarget.Android);
                Debug.Log(AssetDatabase.GetAssetPath(item));
            }
            AssetDatabase.Refresh();
        }

单独打包是指

一个指定勒assetsname的物体则打进assetsname的包中

若有多个assetsname

则打多少个assetsname的ab包

--------------------------------------------------------------------分割线--------------------------------------------------------------------
        /// <summary>
        /// 统一打包
        /// 
        /// 将所有标识可以打包的ab打进一个ab包里边
        /// </summary>
        [UnityEditor.MenuItem("Version AssetsBundle Build/source deep build assetsbundle")]
        public static void DeepVersionAssetsBundle()
        {
            AssetBundleBuild[] builds = new AssetBundleBuild[1];

            Object[] objects = Selection.GetFiltered<Object>(SelectionMode.DeepAssets);

            string[] allpath = new string[objects.Length];

            for (int i = 0; i < objects.Length; i++)
            {
                allpath[i] = AssetDatabase.GetAssetPath(objects[i]);
                Debug.Log(allpath[i]);
            }

            builds[0].assetNames = allpath;
            builds[0].assetBundleName = objects[0].name;

            BuildPipeline.BuildAssetBundles(Application.dataPath + "/StreamingAssets/", builds, BuildAssetBundleOptions.None, BuildTarget.Android);
            AssetDatabase.Refresh();

        }

统一打包是指将指定的物体缓存好路径

然后根据自己的需要

将缓存好的路径分别打进不同的ab包

这里需要明确一点是assetsbundlebuild需要两个必要参数

一个是assetNames,缓存好的需要打包的物体的路径

另一个是assetBundleName,ab包的名称

--------------------------------------------------------------------分割线--------------------------------------------------------------------

两种方式的区别是

一个是系统根据物体指定的assetsname进行打包

一个是自己制定好具体物体打进指定ab包

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值