unity中从Resources下读取较大的资源会卡,有解决办法么? (知乎)
unity中从Resources下读取较大的资源会卡,有解决办法么? (知乎)
byesameVR 发表于3个月前
unity中从Resources下读取较大的资源会卡,有解决办法么? (知乎)
  • 发表于 3个月前
  • 阅读 26
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

有没有类似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里面,性能会好很多。

 

共有 人打赏支持
粉丝 0
博文 4
码字总数 0
×
byesameVR
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: