[cb] Assetbundle打包(一)】的更多相关文章

一.简介 Unity的Assetbundle是Unity Pro提供的功能. 理解:Asset 资源,资产:Bundle :包,一批,捆:字面上的意思,就是把资源打包. 在项目中怎么使用Assetbunlde呢? 答:我们的项目分为两个工程:Art和Client.其中Art工程,把Prefab打包成AssetBundle及拼接美术资源,Client工程读取AssetBundle及游戏逻辑; 二.Art 下面这张是Art工程下的自定义编辑器功能,菜单栏 Game/资源打包/打包 XXX 下是是Pr…
Unity5的AssetBundle打包机制和以前版本不太一样.简单的说就是,只要给你要打包的资源设置一个AssetBundleName ,Unity自身会对这些设置了名字的资源进行打包,如果一个资源依赖了另一个资源.Unity自己会处理依赖关 系,AssetBundleManifest文件就保存着这些资源的依赖关系. 比如一个UI面板.Prefab,依赖了一个图集Atlas,一个字体文件 做个测试: 只给UI面板3.prefab设置AssetBundleName. 打出包来看,别看只有371K…
using UnityEngine; using System.Collections; using UnityEditor; //此脚本不一定要放于editor目录下,经测试,放于其它地方也可以 public class testAB { //public static 类型的变量是不会出现在UI上的,因为出现在UI的脚本是实例化的脚本,是属于特定对象的 public static string varTest = "vartest"; [MenuItem("Assets/…
1.AssetBundle打包 unity 5.x版本AssetBundle打包,只需要设置好AssetBundle的名称后,unity会自动将其打包,无需处理其他,唯独需要做的是设置好个AssetBundle的名称. 注意:AssetBunlde的名称只能设置小写字母,即使你写成大写也会被自动转置成大写字母,而且名称中支持"/",如:"AssetBundles/cube.unity3d",.unity3d的后缀是自己设置的,可以不设置 代码: using Unit…
为热更新打基础(xlua\tolua) 素材.源码链接:http://www.sikiedu.com/course/74/task/1812/show 一.AssetBundle的定义和作用 1,AssetBundle是一个压缩包包含模型.贴图.预制体.声音.甚至整个场景,可以在游戏运行的时候被加载: 2,AssetBundle自身保存着互相的依赖关系: 3,压缩包可以使用LZMA和LZ4压缩算法,减少包大小,更快的进行网络传输: 4,把一些可以下载内容放在AssetBundle里面,可以减少安…
  尼尔:机械纪元 上周介绍了Unity项目中的资源配置,今天和大家分享一个AssetBundle打包工具.相信从事Unity开发或多或少都了解过AssetBundle,但简单的接口以及众多的细碎问题也给工作带来较多的困扰.今天分享AssetBundle工具的实践与想法,相信这块内容对帮助理解AssetBundle有较大的帮助. Unity提供了两种资源加载方式,一种是Resources,另外种就是AssetBundle.所有的资源只要放在Resources目录下,在打包的时候会自动打进去,并可…
Unity5.x AssetBundle打包详解 在网上查看了很多资料,想详细搞清楚AssetBundle的原理.以实现符合项目需求的打包工具和加载逻辑 1. AssetBundle是什么? AssetBundle是Unity用于动更的一种资源打包格式,如果某个资源需要动更的话,它必须被打包成AssetBundle 2. AssetBundle打包常见要面临的问题? 如何组织打包 如何避免资源重复打包 打包的资源如何加载 3. 我的打包方案 Unity5.x已经大幅度简化了AssetBundl的…
由于assetbundle打包存在依赖的问题,所有资源要进行合理的分包 零.代码 代码都放在本地,包括NGUI等插件的代码.shader代码(内置的shader无需打包,而自定义的shader还是需要打包,否则每个依赖这个shader的游戏物体被打包的时候都会将shader代码打包到自己的assetbundle中去) 零点五.自定义shader 因为自定义的shader在启用CollectDependencies 打包时也会被分别打包进assetbundle中,所以为了避免空间的浪费,可以考虑将…
这是第133篇UWA技术知识分享的推送.今天我们继续为大家精选了若干和开发.优化相关的问题,建议阅读时间10分钟,认真读完必有收获. UWA 问答社区:answer.uwa4d.com UWA QQ群:465082844(仅限技术交流) 资源管理 Q:我有一个关于Crunch压缩图片的AssetBundle打包的问题,Unity官网的AssetBundle用法介绍里有一条,就是说因为使用Crunch压缩之后的图片,打成AssetBundle包再压缩,大小也基本不会有变化,还会导致打包慢+使用时候…
AssetBundles与脚本 所有Unity的AssetBundle,无论是从本地获取 还是www,或者打包整个场景.物体上的脚本都不会被编译.所以AssetBundle打包的时候即使物体上有脚本.导入后其他所有Unity的文件都不会有问题,唯独脚本是没作用的(错,只要主程序里含这个脚本就没有问题,也就是主程序和AB一起发布).那能不能用脚本呢? 答案是,可以! 核心是脚本可以打包进Dll,然后在客户端用System.Reflection下的Assembly来加载. 步骤: 开发 (1)正常开…
Assetbundle为资源包不是资源 打包1:通过脚本指定打包 AssetBundleBuild ab = new AssetBundleBuild                               {                                   assetBundleName =                                       PlayerSettings.bundleVersion + "@" + "zhao…
一.什么是AssetBundle 估计很多人只知道Unity的模型之类的东西可以导出成一种叫做AssetBundle的文件,然后打包后可以在Unity程序运行的时候再加载出来用.那么AssetBundle是一个什么样的东西呢? 其实AssetBundle只是一种使用LZMA压缩方式压缩的资源文件.具体LZMA是什么请百度,你可以理解成就是一种压缩文件就行了,至于它的后缀名是什么,一点关系都没有,你可以自己定. AssetBundle打包的时候,你可以指定一个mainAsset,那么加载完之后就可…
[Unity3D] 5.0 图集合并扩展工具,用于解决UGUI与AssetBundle打包造成资源包过大的问题 2017年07月05日 15:57:44 阅读数:1494 http://www.cppblog.com/shly/archive/2015/12/09/212443.html [Unity3D] 5.0 图集合并扩展工具,用于解决UGUI与AssetBundle打包造成资源包过大的问题 UGUI Image已Sprite为主,而简单的合并图集可以使用自带的SpritePacker.而…
第一阶段:AssetBundle出一套解决方式 1.解决如今同一个资源打2个bundle的冗余问题 2.測试验证节省资源的比率是多少 问题拆分 一.bundle反复 问  题  :同样资源拆分问题? 解决方式:1.制作场景时将同样部分分开                          制作方法:将每一个场景同样部分放到同一个文件夹,不同部分保留在场景中                          打包方法:a.打成独立的bundle,不同部分放到每一个场景中打成bundle      …
Unity批量打AB包 为了资源热更新,Unity支持将所有资源打包成AssetBundle资源,存放在SteamingAssets文件夹中: 在项目发布之前,需要将所有资源打包成.ab文件,动态加载: 在项目更新时,替换.ab资源文件,即可完成热更新: ab文件在加载时,会多一步解压缩的过程,会增加性能消耗: 打包操作属于编辑器拓展,所有脚本放在Eidtor文件夹下: 1.PathTool 根据不同平台,获取ab输出和输入路径: 不同平台的输入输出路径不相同,ios,android,windo…
using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEditor; using System.IO; public class BuildAssetBundle : Editor { //需要打包的路径,根据项目具体需求自己定 private static string assetPath = "AllAssets"; //导出包路径 private stat…
之前有一篇文章中我们相惜讨论了Assetbundle的原理,如果对原理还不太了解的朋友可以看这一篇文章:Unity游戏开发使用Assetbundle加载场景的原理 本篇文章我们将说说assetbundle是如何实现的. 1.创建Assetbundle 无论是模型资源还是UI资源,最好是先把他们放在Prefab中,然后在做成Assetbundle.我们以模型来举例,Assetbundle中可以放一个模型.也可以放多个模型,它是非常灵活了那么最需要考虑的就是模型空间占用的问题. 比如我们有两个完全一…
using UnityEngine; using System.Collections; using UnityEditor; /// <summary> /// 脚本位置:Editor文件夹下 /// 脚本功能:打包 /// </summary> public class CreateAssetBundle:Editor { // 打包unity场景文件 [MenuItem("Assets/Build AssetBundle Scene")] static v…
资源管理是游戏开发的重要环节,Unity中使用AssetBundle可以非常方便地帮我们打包和更新游戏内容,在5系列中,AssetBundle更是方便好用,现在让我们先进行打包吧. 刚说了,5系列打包非常方便,细心的同志可能已经发现,在右下角多出了个AssetBundle标签工具栏,这使用得我们在选择要打包的文件时,不必再像4系列中一样要在Editor运行库脚本中写一堆取得对象的代码了.那么,这个工具栏是怎么帮我们解决问题的呢?很简单,选中我们的需要的打包的资源(包括场景哦),然后在工具栏编辑和…
打包思路:确定要打包资源的路径.和打包的输出路径(一般为S路径),把存放资源的路径使用递归进行遍历,获取所有资源,文件类型的资源可以通过File拷贝或IO写到输出路径,其他资源的打包通过AssetBundle方式打包,即确定AB包和AB包内的资源,使用BuildPieline.BuildAssetBundle进行打包. BuildPipeline.BuildAssetBundles()两个重载,三个参数: BuildPipeline.BuildAssetBundles(bundle的输出路径,…
理论不多说,网上,官方文档都有.  这里有一篇介绍很全面的文章:https://www.cnblogs.com/ybgame/p/3973177.html 示例和注意点记录一下,用到时以便查阅. 一.打包代码(Editor) 我所知道的,有两种打包方法:1.所有打包参数在代码里设置,完全代码控制:2.在编辑器中设置打包参数,代码简便 第一种: 在代码中指定bundle包名,指定包含在该bundle里的所有资源路径 [MenuItem("AssetsBundle/Build Bundle -- 代…
AssetBundle Resources:表示U3D自动将资源打成一个AssetBundle包,所有放在Resources下的文件夹都会打成一个AssetBundle包,资源非常大,Resources文件夹在真机上最大只有2G的内存(专业版会增大内存) AssetBundle包:其实可以看成一个压缩包(有固定格式的),默认情况下使用LZMA压缩方式压缩的资源文件:和压缩ZIP一样的,只不过里面的格式变了 Unity3D引擎为我们提供了三种压缩策略来处理AssetBundle的压缩,即: 1.L…
using UnityEngine;using System.Collections;using UnityEditor; /// <summary>/// 简单资源打包Editor/// </summary>public class BuildPacketEditor : EditorWindow { [MenuItem("Tools/Packet/BuildAssetBundle-Android")] public static void ExportAnd…
Unity5.3更新了assetbundle的打包和加载api,下面简单介绍使用方法及示例代码. 在Unity中选中一个prefab查看Inspector窗口,有两个位置可以进行assetbundle的标记. 第一个为assetBundleName,如果这里不是None,则这个资源会记录到AssetDatabase里,使用BuildAssetBundles打包时,会自动将AssetBundleName一致的资源打到一个包中. 第二个为Variant,可用于区分不同分辨率的资源.如果在abName…
最近在看Unity官方的AssetBundle(以下简称AB)的教程,也照着做了一遍,不过做出来的AssetBundleManager的API设计得有些不太习惯.目前想到了一个可行的解决方案.AB相关的内容有点多,所以为了良好的阅读体验,就把教程分为几个小文章,一次写一个点. 1. AssetBundle设置: 首先要确定一个专门打资源包用的目录,我的框架定的目录是 QArt/QAB,并存放了一些Prefab资源,如下所示. 然后选定TestAB目录,将Inspector窗口的设置为如下图所示:…
BuildPipeline.BuildAssetBundles() 这个函数,有多个重载,一个不用AssetBundleBuild数组,一个需要,如果设置了AssetLabels,那么这时候是不需要的,如果没有设置,那么我们就可以打包自定义项, AssetBundleBuild assetBundleBuild = new AssetBundleBuild();  我们可以new 出来一个 AssetBundleBuild  ,在这里指定他的  assetBundleName  和  asset…
using UnityEngine; using System.Collections; using UnityEditor; public class dabao : EditorWindow { /* * 主要就这俩东西 - -. *BuildPipeline.PushAssetDependencies():依赖资源压栈: BuildPipeline.PopAssetDependencies():依赖资源出栈. */ [MenuItem("z/make")] static void…
本文unity版本5.1.3 一.现有的打包教程: 1.http://liweizhaolili.blog.163.com/blog/static/16230744201541410275298/ 阿赵 2.http://docs.unity3d.com/Manual/BuildingAssetBundles5x.html 官方 3.http://www.it165.net/pro/html/201506/43896.html 二.打包遇到的问题 1.资源的依赖关系(依赖关系处理不好,导致资源重…
上篇文章中实现了基本的打包功能,在这篇我们来解决不同平台打AB包的问题. 本篇文章的核心api还是: BuildPipeline.BuildAssetBundles (outPath, 0, EditorUserBuildSettings.activeBuildTarget); 在第三个参数中,只要传入不同平台 BuildTarget就可以了.目前只考虑Android和iOS平台. 区分iOS.Android平台 很简单,只要在上篇文章的QABEditor类中将原来的BuildAssetBund…
1.先创建Asset序列化(单个文件夹所在文件夹路径,会遍历这个文件夹所有的Prefab,所有的Prefab名字不能重复,必须保证名字得唯一性),配置好ConfigAB表 /* ######### ############ ############# ## ########### ### ###### ##### ### ####### #### ### ########## #### #### ########### #### #### ########### ##### ##### ###…