码迷,mamicode.com
首页 > 编程语言 > 详细

unity3d的资源管理和热更新方案

时间:2017-04-05 18:15:27      阅读:943      评论:0      收藏:0      [点我收藏+]

标签:通用   设置   下载   cocos2d   好的   游戏   .com   inf   解决方案   

    之前开发一直使用cocos2dx,最近开始搭建unity3d的框架,遇到的一个大问题就是热更新。虽然代码采用了slua脚本,unity3d官方也提供了assetbundle这样的解决方案,但是还是有好多的问题需要解决。

    1.复杂的资源引用方案。cococ2dx的更新方案很简单——添加附加searchpath,这样只要设置更新文件所在的路径,就能保证优先使用最新资源。但是unity3d并不是这样,因为它没有cocos2dx的FileUtils,没办法控制所有资源的加载。unity3d的资源来源有这么三个路径,unity自动打包、Resources/StreamingAssets、assetbundle。第一种是一种静态的资源索引,编辑器怎么设置那就怎么获取资源,打包时打入包中。第二种是动态资源加载,但是资源也是打包时打入包中的,没法进行更新。第三种可以将资源打包,让我们进行资源管理,是可选的热更新方案。

    2.资源加载方案。在游戏包中,我们使用的是静态关联,比如启动了场景SceneLoad,那么用到的资源都是原生打入包中的,那AssetBundle被下载之后,我们要如何才能加载呢?答案是下一个场景动态加载,而不是写死在代码中。这样的话,我们就能通过一个资源配置文件resourceInfo来控制加载的资源和场景的信息了——到底是用哪个assetbundle或者是resources中的资源。

    3.assetbundle的粒度应该是如何的?如果每个文件都生成一个ab,那效率太低,但是如果全部资源做成一个ab,下载资源量可能过大,对模块的划分和资源管理也不好。比较好的做法事,通过功能或者模块来划分,比如UI、模型、通用资源等。

    4.资源里面,场景是一种特殊的资源,因为它对别的资源有静态的依赖关系,所以打包场景一定包含了很多别的资源。脚本也是一种特殊资源,需要设置好目录关系。


    参考:http://www.cnblogs.com/lancidie/p/5878792.html

本文出自 “山重水复” 博客,谢绝转载!

unity3d的资源管理和热更新方案

标签:通用   设置   下载   cocos2d   好的   游戏   .com   inf   解决方案   

原文地址:http://huanghaitao.blog.51cto.com/10005736/1913077

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!