unity开发-记录项目目录管理及作用 Assetbundle 存放及资源更新

来源:互联网 发布:淘宝买家评论大全 编辑:程序博客网 时间:2024/06/03 17:07

参考 葱烧烙饼 的博客,unity项目中asset目录下的划分http://blog.sina.com.cn/s/blog_5b6cb9500101a95q.html;

Resources中作为随包资源一起发布,在unity5的版本中sprite在此目录下无法被sprite packer 打包成一张图集,

并且官方不推荐大量资源在此目录下,而事实上我们也不会这样做。但是在此目录下下的资源可以通过Resources.Load 直接加载。

参考宣雨松的微博,有比较详细的介绍。

我在此记录下StreamingAssets 文件夹于 Assetbundle 的联系。

StreamingAssets目录下的资源是只读的,无法修改, 程序中通过  Application.streamingAssetsPath 获取目录进行读取。

还有两个需要注意的目录,我们的程序也可以获取的,他们分别是Application.dataPath 和 Application.persistentDataPath;

Application.persistentDataPath 是其中唯一对我们开放读写的位置,我们程序运行中需要改变记录的文件一般存放其中,比如,一些由游戏进程

改变的游戏数据,从服务器更新的游戏资源等。当然也可以用PlayerPrefs.Save 存储一些简单的数据,但是这个是有大小限制的。

下面记录下需要理清楚的地方,在实际项目开发中。我们打包资源成Assetbundle文件,一般情况下我们会放入 StreamingAssets 目录下随包发布,

以便程序获取,当然,这样打包的时候unity会更新目录下的资源,大量资源打包获取会变得卡顿时,我们也可以将打包的资源放置在其他地方,

可以在发布版本的时候通过jave工程或者xcode工程发布,这样的话 我们可以通过 Application.dataPath 获取,这个目录下也是只读的。

当我们有资源需要更新的时候客户端从服务器加载到 Application.persistentDataPath 下,那我们的程序逻辑在取资源的时候就成了先检查

Application.persistentDataPath 中是否有新资源。没有的话去 Application.streamingAssetsPath 或 Application.dataPath 中取 初始版本的资源。


所以,更新过的资源就会变成双份。一份是随包发布的初始资源,一份是最新更新的资源,同一资源期间更新的其他版本会被覆盖掉,但是因为我们没有操作

权限,所以初始版本无法移除,Android 权限比较开放,但是ios就只能呵呵了。

整理记录,以免忘记。


0 0
原创粉丝点击