16132人加入学习
(55人评价)
AssetBundle(创建打包)入门学习(基于Unity2017)
价格 免费

BuildAssetBundleOptions.None :使用LZMA算法压缩,压缩的包更小,但是加载时间更长。使用之前需要整体解压。一旦被解压,这个包会使用LZ4重新压缩。使用资源的时候不需要整体解压。在下载的时候可以使用LZMA算法,一旦它被下载了之后,他会使用LZ4算法保存到本地上。

BuildAssetBundleOptions.UncompressedAssetBundle:不压缩,包大,加载快

BuildAssetBundleOptions.ChunkBasedCompression:使用LZ4压缩,压缩率没有LZMA高,但是我们可以加载指定资源不用解压全部(跟不压缩的加载速度媲美,比不压缩的文件小)

 

 

[展开全文]
罗卡恩 · 2019-04-20 · 该任务已被删除 0

1.把经常更新的资源放在单独的一个包里,不经常更新的包分离。

2.把需要同时加载的资源放在一个包里

3.可以把其他包共享的资源放在一个单独的包里

4.把一些需要同时加载的小资源打包成一个包

5.如果对于一个同一个资源有两个版本,可以考虑后缀区别

[展开全文]
罗卡恩 · 2019-04-20 · 该任务已被删除 0

1.逻辑实体分组

a.一个UI界面或者所有UI界面一个包(界面里贴图、布局信息一个包)

b.一个角色或者所有角色一个包(角色里模型和动画一个包)

c.所有的场景共享的部分一个包(贴图和模型)

2.按照类型分组

所有声音一个包

shader一个包

模型一个包

材质一个包

3.按照使用分组

把同一时间使用所有资源打成一个包。按关卡分,一个关卡所需要的所有资源包包括角色、贴图、声音。也可以按场景分,一个场景所有资源一个包

[展开全文]
罗卡恩 · 2019-04-20 · 该任务已被删除 0

1.指定资源的AB属性

(xxxa/xxx)这里xxxa会生成目录,名字为xxx

2.构建AB包

3.上传AB包

4.加载AB包和包里的资源

[展开全文]
罗卡恩 · 2019-04-14 · 该任务已被删除 0

1.它是一个存在于硬盘上的文件。可称之为压缩包。这个压缩包可以认为是一个文件夹,里面包含多个文件。这些文件可分为两类:

serialized file(序列化文件):资源被打碎放在一个对象中,最后统一被写进一个单独文件(只有一个);

resource files:某些二进制资源(图片、声音)被单独保存,方便快速加载

2.它是一个AB对象,我们可以通过代码从一个特定的压缩包加载出来的对象。这个对象包含了所有我们当初添加到这个压缩包里面的内容,

[展开全文]
罗卡恩 · 2019-04-14 · 该任务已被删除 0

1.AB是一个压缩包包含模型、贴图、预制体、声音、场景等,可以再游戏运行时加载;

2.AB自身保存着相互依赖关系

3.压缩可以使用LZMA和LZ4压缩算法,减少包的大小,更快进行网络传输;

4.把一些可以下载的内容放在AB里,可以减少安装包大小

[展开全文]
罗卡恩 · 2019-04-14 · 该任务已被删除 0

经常更新放一个包,将不经常更新分离。

需要同时加载的资源放一个单独的包。

其他包共享资源防单独一个包

同时加载的小资源

[展开全文]
非鱼安知其乐 · 2019-04-09 · 该任务已被删除 0

硬盘文件,分为serialized file(序列文件)和resource files(源文件),

serialized file 打碎文件(只有一个)

resource file可以使声音,图片。

 

 

[展开全文]
非鱼安知其乐 · 2019-04-09 · 该任务已被删除 0

assetbundle   使用步骤: 在unity面板材质右下角,选择是否assetbundle,指定路径,然后代码创建打包类,然后可视化在控制面版生成menuitem ,点击开始打包。
 
创建一个打包类,代码: 
   
   using UnityEditor;  using system.io;    //引用unityEditor 需要将脚本创建在Editor文件夹下 ,  
     [menuitem("Assets/Build AssetBundles")]  //可视化控制面板   

   public class CreatAssetBundles(){
 
   static void BuildAllAsset(){

    string dir="AssetBundle"
  if(directory.Exit(dir)==false)
  {
   directory.CreatDirectory(dir)
  }
   buildPipeline.BuildAssetbundles(dir,buildoptions.none, buildtarget.windows64)
  }
}}

加载的方法 ,加载本地文件里的ab包,

 Assetbundle ab=Assetbundle.LoadFromFile("Assetbundle/Scene/wall.unity3d");  // 从文件夹加载资源包
 GameObject wallpfef=ab.loadAsset<GameObject>("Cubewall");   //加载物体资源, 从ab包加载    
  instantiate(wallpref);     
加载单个资源泛型,   加载所有loadAllAssets(), 返回uniyt.object数组 ,  getAllAssetName获取所有资源名字 

安卓平台,需要添加上级目录 :string path = Application.dataPath+"Assetbundle/Scene/wall.unity3d";  

卸载AB包,减少内存占用, asset.unload(false) ; false是不卸载被其他物体使用的材质, true是全部卸载  

进一步减少包的大小:   打包的时候,先打包共享资源,然后其他的只需要引用不打包。
比如两个模型不一样的墙  共用一个材质和贴图 , 如果先把材质贴图打包,这墙打包的时候只需要地址指向,不再次打包材质贴图 , 如果不把材质贴图先打包,独立打包两种墙, 则每个墙都会把材质贴图包含在内打包,就大了

包的依赖关系, 墙依赖材质贴图的包,所以墙的的preb包和材质包都要加载,不然会丢失材质 。

[展开全文]
青春不远万里 · 2019-04-06 · 该任务已被删除 0

AssetBundle

第一步制定 

[展开全文]
苍云卷暮色 · 2019-03-25 · 该任务已被删除 0

 

什么是AssetBundle;它是储存在硬盘上的压缩文件,它包含两个类分别为

 

serialized fil(序列化文件)e;资源被打碎放在一个对象中,最后被统一写进一个单独的文件

resource flies(源文件);某些二进制(图片和声音)被单独保存,方便快捷

 

[展开全文]
苍云卷暮色 · 2019-03-25 · 该任务已被删除 0

AssetBundle学习

[展开全文]
Peter_cao · 2019-01-04 · 该任务已被删除 0

小知识点,大家一起注意下,必须在Unity的Asset目录下创建正确的Editor文件夹,并将打包的函数放在该文件夹下,否则UnityEditor的头文件引用会报错!

[展开全文]
丿星幻翼灬 · 2018-12-21 · 该任务已被删除 0

文件校验有三种方式

CRC MD5 SHA1

CRC的安全性比后两者低很多

MD5在04年被王小云给破解了

CRC的计算效率很高,MD5和SHA1比较慢

CRC一般用于从通信数据的校验

MD5和SHA1用于去安全领域,如文件校验和数字签名等。

[展开全文]
富有诗意的男网名分 · 2018-10-24 · 该任务已被删除 0

AssetBundle.Unload(true/false);

 

unload(true):(推荐使用)

 不管游戏物体是否在使用关联的材质,都会卸载

 

unload(false)

不会卸载正在使用的材质 

[展开全文]
富有诗意的男网名分 · 2018-10-24 · 该任务已被删除 0

先加载依赖包,再加载当前包

 

[展开全文]
富有诗意的男网名分 · 2018-10-23 · 该任务已被删除 0

 

老师,我这个unity是2017.3的,这么写

加载不出来呢

 

[展开全文]
unityShader · 2018-10-17 · 该任务已被删除 0

在使用前加载依赖包

[展开全文]
LinJiaHao · 2018-09-18 · 该任务已被删除 0

如果本地已经搭建有服务器,可以通过查看软件的端口号,在uri中加入端口号

[展开全文]
FatChoy · 2018-08-23 · 该任务已被删除 0

1:UnityWebReqequest 

[展开全文]
unitywen · 2018-08-13 · 该任务已被删除 0

授课教师

SiKi学院老师

课程特色

图文(1)
下载资料(1)
视频(24)