您的位置:首页 > 移动开发 > Unity3D

Unity教程之-Unity3d打包Assetbundle并加载(全面)

2016-10-21 18:42 1496 查看
此文为转发,如果有看不懂的直接看我之前一篇灰常初级的教程然后再来看这篇。初级地址http://blog.csdn.net/alayeshi/article/details/52885735

本篇Unity3d教程我们继续学习下如何制作利用AssetBundle来打包制作我们的数据文件,并在游戏中读取AssetBundle数据文件

由于我们要将模型资源放在远程的服务器端,但如果直接放fbx模型是不可以加载的,所以我们可以将fbx做成预设或者是直接将其打包成assetbundle格式的,然后通过www来加载获取。

说下使用方法:

1、把附件脚本放到工程文件夹下的…\Assets\Editor文件夹下。

2、在工程的Project视图里点击想要保存的资源,网络上推荐的是Prefab,右键点击,选择菜单里最下面的两个选项任意一个都可以,第一个选项对应的自定义属性有一个过期了,但是不影响使用。

3、指定文件的构建路径和文件后缀,后缀无所谓。

4、推荐制造做法:

任何形式的资源都可以,包括集合资源,比如创建一个空的GameObject,把所有想要关联的其他GameObject都拖进去,然后在project视图里创建一个prefab,将这个集合资源GameObject拖进去作为一个prefab。执行上面的第2、3步骤。

官方的讲解:http://game.ceeger.com/Script/BuildPipeline/BuildPipeline.BuildAssetBundle.html

1.首先要讲一下不同平台下的一个StreamingAssets路径,这是不同的。

?
这就获取到了不同平台的一个路径,我们可以将打包的文件放在这些路径下,然后再从这路径去读取资源。

2.关于打包assetbundle的脚本

?
前提要新手动创建一个StreamingAssets文件夹

3.读取资源,这里只举例从本地读取,跟从网络读取是一样的,可以参考官方文档:

http://game.ceeger.com/Script/WWW/WWW.html

?
如果assetbundle文件放在服务器端,直接用www.loadfromcacheordownload()通过版本来控制是否从服务器下载并保存到本地。本人亲自测试,这个方法是能下载到本地的,至于下载在本地哪儿我就不太清楚了,我猜测应该是存在沙盒文件下(移动开发者的朋友应该知道),当然也可以自己来做版本控制,那样更灵活,并且摆脱www.loadfromcacheordownload()方法的束缚,貌似这个方法存贮文件是有空间大小限制的,据说是50M,本人没有亲自考证,后期我会自己做一个版本控制!

好了,本篇unity3d教程到此结束,下篇我们学习如何利用FileStream来读取我们的AssetBundle数据并加载文件!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: