动态加载资源的方式?(有时候也问区别,具体请百度)
2016-01-05 08:50
260 查看
1.通过resources模块,调用它的load函数:可以直接load并返回某个类型的object,前提是要把这个资源放在resource命名的文件夹下,unity不关有没有场景引用,都会将其全部打入到安装包中。resources.load();
2.通过bundle的形式:即将资源打成 asset bundle 放在服务器或本地磁盘,然后使用www模块get 下来,然后从这个bundle中load某个object。assetbundle
3.通过assetdatabase.loadasset :这种方式只在editor范围内有效,游戏运行时没有这个函数,它通常是在开发中调试用的【assetdatabase 资源数据库】
区别:resources的方式需要把所有资源全部打入安装包,这对游戏的分包发布(微端)和版本升级(patch)是不利的,所以unity推荐的方式是不用它,都用bundle的方式替代,把资源达成几个小的bundle,用哪个就load哪个,这样还能分包发布和patch,但是在开发过程中,不可能没更新一个资源就打一次bundle,所以editor环境下可以使用assetdatabase来模拟,这通常需要我们封装一个dynamic
resource的loader模块,在不同的环境下做不同实现。
动态资源的存放
有时我需要存放一些自己的文件在磁盘上,例如我想把几个bundle放在初始的安装里, unity有一个streaming asset的概念,用于提供存储接口的访问。我们需要在编辑器建立一个streamingassets名字的文件夹,把需要我们放在客户磁盘上的动态文件放在这个文件夹下面,这样安装后,这些文件会放在用户磁盘的指定位置,这个位置可以通过application.streamingassetspath来得到。
2.通过bundle的形式:即将资源打成 asset bundle 放在服务器或本地磁盘,然后使用www模块get 下来,然后从这个bundle中load某个object。assetbundle
3.通过assetdatabase.loadasset :这种方式只在editor范围内有效,游戏运行时没有这个函数,它通常是在开发中调试用的【assetdatabase 资源数据库】
区别:resources的方式需要把所有资源全部打入安装包,这对游戏的分包发布(微端)和版本升级(patch)是不利的,所以unity推荐的方式是不用它,都用bundle的方式替代,把资源达成几个小的bundle,用哪个就load哪个,这样还能分包发布和patch,但是在开发过程中,不可能没更新一个资源就打一次bundle,所以editor环境下可以使用assetdatabase来模拟,这通常需要我们封装一个dynamic
resource的loader模块,在不同的环境下做不同实现。
动态资源的存放
有时我需要存放一些自己的文件在磁盘上,例如我想把几个bundle放在初始的安装里, unity有一个streaming asset的概念,用于提供存储接口的访问。我们需要在编辑器建立一个streamingassets名字的文件夹,把需要我们放在客户磁盘上的动态文件放在这个文件夹下面,这样安装后,这些文件会放在用户磁盘的指定位置,这个位置可以通过application.streamingassetspath来得到。
相关文章推荐
- 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gulp专家
- mina架构分析
- Windows下zlib库和libPng库的编译和使用
- linux 命令 —— groups、id、who
- java 不可变对象
- 透过媒体评奖大包大揽看三星综合实力
- DB CHARACTER
- python第三方库——xlrd和xlwt操作Excel文件学习
- linux 组播请求发送
- ADO.NET之1-数据库连接---ShinePans
- C socket指南
- 2015.12.30-2016.01.04回顾
- 文章标题
- javascript判断单选框是否选中
- 【bzoj3514】Codechef MARCH14 GERALD07加强版 link cut tree+主席树
- Caused by: java.lang.ClassNotFoundException: org.apache.log4j.DefaultThrowableRenderer
- timegettime与高精度计时
- 菜鸟使用python实现正则检测密码合法性
- Git的使用教程(一)安装Git
- Struts 获取 request reuponse session