Unity5.x AssetsBundle笔记

来源:互联网 发布:cf积分刷点卷软件 编辑:程序博客网 时间:2024/06/07 00:09

5.x以上的版本unity的AsstesBundle打包方式有所变化,但之前的打包方式依然可以用只是多了一个步骤,就是给AssetsBundle指定名称(关于这一步Unity官网有详细解释)。还有一个不同点是如果用5.x以前的打包方法生成的资源是没有.manifest的配置文件的。值得注意的是虽然能用5.x以前的方式打包但是加载的方式还得用5.x的。不然加载不了。下面我们来看下代码的代码和打包之后的资源效果。

先看5.x的打包方式:创建一个空的unity工程,先写上打包的脚本如图:

BuildPipeline.BuildAssetBundles ("资源存放路径", 资源的压缩方式, 打包资源的平台)。


接着我们把脚本保存放在Editor文件目录下。脚本我们就写完了,接着我们去创建提高Prefab物体打包看看。创建一个Cube名的预制物体,选择Cube物体在Inspector面板设置AssetsBundle名称:如图:(这里的名称需要是小写,即便你写大写,系统也会帮你转成小写。)


然后我们给他取个名字,就叫cube吧:如图:


现在基本工作已经完成了,然后我们生成AssetsBundle资源,如图:


​我们会发现与5.x最大的不同就是生成了很多文件,这些文件我们都不用理,当然你也可以自己看官方的解释,而我们关注的是红色框里面的cube这个才是我们需要的资源文件。这个文件是没有后缀名的当然你自己加.assetbundle后缀也是没问题的,不影响。

生成部分就这样了,接着我们去加载它。我们只需要把上面红色框里面的文件放在我们的服务器就可以进行下载了。放服务器的步骤就省了。接着我们看加载部分的代码:如图


到此5.x的AssetsBundle的打包加载流程已经完成了。

下面我们看5.x以前的AssetBundle打包方式:如图:


红色框的代码时5.x以前的代码了其实已经过时了 但是依然可以用的这个代码,虽然我们可以用5.x以前的代码但是我们打包的流程还得按照5.x的来​,当然你说实在不按照5.x的流程来也是可以的。都是可以加载的。唯一要注意的是,虽然打包可以这样,但是5.x加载4.x的资源是不行的。

值得注意的是:5.x加载5.x的方式生成AssetsBundle的时候只能用www.assetBundle.LoadAsset ()方法,而www.assetBundle.mainAsset​用不了。但是5.x加载​4.x的方式生成的AssetsBundle的时候以上两个方法都是可行的。

注:如果我们的项目原来是用4.x做的用到了AssetsBundle,现在我们升级unity到5.x了,那么很显然4.x的资源加载不了,我们需要把4.x的资源在5.x里再生成一遍即可,代码什么的都不需要改。

注2:如果加载资源发现shader丢失的话 那么使用如下方式即可,Editor->Graphics Settings里去添加使用到的shader,然后在进行发包。如果不进行添加或者忘记添加,发布在移动设备后还是会丢失。

完美!


0 0
原创粉丝点击