u3d在线更新资源方案
来源:互联网 发布:编程培训业余班 编辑:程序博客网 时间:2024/04/27 21:32
现附上雨松大神的文章:
http://www.xuanyusong.com/archives/2405
正如他所说,大部分游戏都是登陆时候检查版本,然后更新需要更新的资源。但坑爹的WWW设计是异步的,但其实游戏一开始已经全部更新完毕,
确保所有东西都是在本地,那么完全可以同步使用。而且异步代码写起来确实麻烦。然后大神提供的方案是:打包用非压缩方式,然后自己用lzma压缩,然后游戏程序自己下载到本地后解压。看上去似乎是一个不错的解决方案,但我实际操作中发现几个比较蛋疼的问题:
1.用这样的流程不得不自己进行管理,自己写工具周期长,而且容易出bug。
2.lzma压缩解压速度堪忧。但如果使用速度较快的zip,压缩率下降,包增大不少。
3.手机上操作文件其实并不方便,如果你放在StreamAssets下面,你还得考虑加密问题。
所以我觉得这个方案其实并不好,但市面上那么多游戏,似乎都用的很顺畅,于是我就反编译了酷酷爱魔兽,盗梦英雄,我叫MT2的源代码。
观察这些牛逼游戏的方式,发现它们是这样更新的。
第一种:用自带的AssetBundle, 然后代码逻辑全部都是异步处理。 盗梦英雄和酷酷爱魔兽就是这么做的。顺便提下盗梦英雄写的代码真是好啊。
看的非常舒服。确实有这种给力的程序员,那么一开始就架构好思路,然后写异步是可行的。但我们属于后期增加在线更新功能, 前面全是同步逻辑,
不得不暂时放弃。
第二种,也是现在采用的方案。所有的都按照Resource.load逻辑写的。只不过如果有资源要更新,就以AssetBundle下载到本地。然后获取资源的时候,优先
检查AssetBundle中的,如果有就获得,没有就用Resource.load。这样首先解决了同步的问题,其次因为更新的资源和整个包相比很小,也就不用担心压缩的
问题。
0 0
- u3d在线更新资源方案
- U3D 代码、资源热更新
- U3D资源动态加载异步方案探究
- [u3d]关于asset资源热更新总结
- U3D资源打包与动态加载各种事项与方案
- unity3d在线更新资源(4)
- unity3d在线更新资源(2)
- unity3d 在线更新资源(3)
- unity3d在线更新资源(5)
- unity3d在线更新资源专题(6)
- 网络游戏资源代码热更新开发方案
- u3d 资源包
- u3d资源代码
- U3D资源加载
- 关于U3D热更新
- cocos2d-x使用AssetsManager类实现资源的在线更新
- Android SDK 在线更新镜像服务器资源
- Android SDK 在线更新镜像服务器资源
- opencv学习笔记 第二篇 图像阈值化
- 关于工作的感悟
- matlab中sin(pi)不等于0怎么办
- 【云简评】之十九《云+端如何促进银行ATM机的革命》
- Activity或者FragmenitActivity锁屏后会被销毁一遍,解锁时又重新加载onCreate的问题解决
- u3d在线更新资源方案
- android studio基本操作
- Elasticsearch操作
- 堆排序
- Singleton(单例模式)
- 织梦做在线报名提交表单时出现错误数据校验不对,程序返回
- (c语言)选择排序法和冒泡排序法
- Codeforces 313B Ilya and Queries
- Xcode 6.3 c++ std library 编译错误