文档章节

unity中从Resources下读取较大的资源会卡,有解决办法么? (知乎)

b
 byesameVR
发布于 2017/09/08 08:38
字数 427
阅读 32
收藏 0

有没有类似AssetBundle的LoadAsync类似方法。也不能在其他Thread里执行unity语句,会把其他的所有脚本都卡住了。

换成异步加载效果也很有限,因为后台loading结束之后有些操作还是必须在主线程上完成,这部分操作Profiler上面会显示为Integrate Assets in Background,对象比较复杂或者在低端机型上还是会卡很长时间。如果是场景比较复杂考虑利用Unity的多场景编辑拆分成多个场景流式加载。如果是比较复杂的Prefab最好拆分一下,然后用脚本延时组装起来。模型和图片比较大的话在低端机型上也可能比较卡,可以考虑根据机型选择不同精度的素材。同时也要考虑脚本的因素,如果加载的场景或者Prefab上有比较耗时的脚本,最好优化一下,Awake,OnEnable和Start都是在主线程上执行的。另外官方也不推荐再用Resources保存资源了,Resources下面的资源要在程序启动时建立索引,复杂度是线性的,scalability不是很好,素材多了会卡,而且也不方便patch,也就比较适合放一些配置文件。正经搞最好都换成AssetBundle,如果要随app一起分发,可以把AssetBundle放到Streaming Assets里面用。如果要随app一起分发还要能更新的话,可以游戏启动的时候花点时间把AssetBundle从Streaming Assets里面导到Cache里面,性能会好很多。

 

本文转载自:

共有 人打赏支持
b
粉丝 0
博文 4
码字总数 0
作品 0
青岛
关于Unity3D Assets资源目录结构管理

u3d默认目录 ) (插件)不是C#语言写一些插件和库,比如javajsC++,u3d默认目录,u3d是C#编译器,其他语言只有这个目录才能识别 资源,需要动态加载的资源放在这里,打包时在这个文件夹里的所有文件...

lizhenxiqnmlgb
05/23
0
0
unity3d中StreamingAssets和Resources目录的区别

刚学unity3的人,肯定会对这两个目录非常困惑,知道他们都是只读的、Resources会加密,StreamingAssets不加密,但是在使用上到底有怎样的不同,却不太说得清楚。 我在用了unity3d有一段时间后...

球球闪电
06/29
0
0
Unity中资源动态加载的几种方式比较

初学Unity的过程中,会发现打包发布程序后,unity会自动将场景需要引用到的资源打包到安装包里,没有到的不会跟进去。我们在编辑器里看到的Asset中的文件结构只是工作于编辑器环境下的,在游...

千山万水
2015/11/13
0
0
Unity2018新功能抢鲜 | C# Job System Ⅰ

本文首发于“洪流学堂”微信公众号。 洪流学堂,让你学Unity快人几步 Unity2018.1中的新功能Job System,可以让你在Unity中编写简单且线程安全的多线程代码以大幅提高游戏性能。先来看看吧!...

zhenghongzhi6
04/17
0
0
unity3d的资源管理和热更新方案

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

球球闪电
06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

同样是工作3年程序员,为什么别人每月25K你却只有15K?

你有没有静下心来思考过:同样是做了x年Java开发,为什么你的技术比别人差很多?为什么别人每月26K你却只有15K? 其实技术水平的高低和个人智商关系不大(毕竟能做Java编程开发大家都不会差)...

Java填坑之路
21分钟前
1
0
跨域问题:解决跨域的三种方案

当前端页面与后台运行在不同的服务器时,就必定会出现跨域这一问题,本篇简单介绍解决跨域的三种方案,部分代码截图如下,仅供参考: 方式一:使用ajax的jsonp 前端代码 服务器代码 使用该方...

rechardchensir
22分钟前
4
0
linux学习-1012

8.6 管道符和作业控制 8.7/8.8 shell变量 8.9 环境变量配置文件 扩展 bashrc和bash_profile的区别 http://ask.apelearn.com/question/7719 简易审计系统: http://www.68idc.cn/help/server/...

wxy丶
22分钟前
1
0
springboot dubbo 在程序初始化完成前 使用回声测试对服务依赖检测

<dubbo:consumer timeout="10000" check="false" /><dubbo:service delay="-1" /> @Component@Order(2)public class PrkServiceInit implements ApplicationListener {private Logge......

林伟琨
24分钟前
3
0
“网红架构师”解决你的Ceph 运维难题

Q1. 环境预准备 绝大多数MON创建的失败都是由于防火墙没有关导致的,亦或是SeLinux没关闭导致的。一定一定一定要关闭每个每个每个节点的防火墙(执行一次就好,没安装报错就忽视): CentOS s...

编程SHA
28分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部