Q&A——资源加载(一)
来源:互联网 发布:投资网络电影赚钱吗 编辑:程序博客网 时间:2024/06/05 00:53
资源加载
Q1:怎样动态加载Navmesh?
目前Navmesh不支持动态加载,只能随场景一起加载, 因此可以考虑将带有Navmesh的场景打包成AssetBundle,然后使用LoadLevel加载AssetBundle中的场景。
Navmesh的动态加载已经在Unity的Roadmap中。而当前,Navmesh是和场景绑定的,也就是说目前只能通过LoadLevel(不支持LoadLevelAdditive的加载方式)来加载场景的同时,自动加载对应的Navmesh数据。替代方案是:将多个“场景Prefab”的Navmesh 合并到同一个场景中烘焙好(互不重叠),然后再将这些“场景Prefab”分离到各个单独的场景中去;在运行阶段,Navmesh随着第一个场景一次性加载,而对于其他的场景物件,再通过LoadLevelAdditive来加载对应的场景即可。缺点是为了使场景物件对齐Navmesh,在场景制作时就不能出现坐标上的重叠,因此仅供参考。
在Unity 5.x下,Lightmap的动态加载,需要通过脚本将烘焙时每个物件的Lightmapindex和Lightmapscaleoffset记录下,并在运行时动态加载后设置回去的方式来实现。因为目前Lightmapindex和Lightmapscaleoffset信息是和场景绑定在一起,储存在Lightmapsnap.assets 中,发布时也是放在场景信息中,因此不会记录在Prefab 上。
资源加载
Q2:如下图,我们在Unity 5.3.0中使用粒子系统时会触发一个ParticleSystem.Geometryjob的操作,并且该操作十分消耗CPU,请问怎么解决?
该问题已经确认是Bug,且已在Unity 5.3.2中修复。
开发者需要关注下自己的开发版本,5.3.2以前类似情况的项目可以参考一下。
资源加载
Q3:如下图:我在Profiler中看到这些没有引用的资源,他们是否还在内存中?
是的,凡是在Unity Profiler中能看到的资源就会保留在内存中。对于这种资源,在切换场景时调一下UnloadUnusedAssets API就可以释放。
- Q&A——资源加载(一)
- Q&A——资源加载/卸载
- Q&A——资源制作(一)
- Q&A——动画(一)
- Q&A——资源管理(一)
- Q&A——AssetBundle(资源打包)
- Q&A——代码加载
- Q&A——开发技巧(一)
- Q&A——内存管理(一)
- Q&A——图形渲染(一)
- Q&A——运行性能(一)
- Q&A——UI输入(一)
- Q&A——版本Bug(一)
- Q&A——性能优化(一)
- Q&A——开发技巧(一)
- AwesomePlayer Q&A (一)
- Q&A——资源管理(六)
- Q&A——资源管理(七)
- 对于2-gram 条件下对英语文本的分词处理
- 【网易】双核处理
- T_FINISH
- 11、vue.js 之路由
- SparkSQL写数据到Hive的动态分区表
- Q&A——资源加载(一)
- Tecplot宏的循环结构
- javascript es6
- 0-1背包问题输出物品编号
- T_REP_FILE
- UVa 1395 kruscal变形
- @property 属性类型归纳和介绍
- 编写makefile文件
- for in 循环