unity的www.dispose()卡死freeze bug

简介: # unity的www.dispose()卡死freeze bug ![unity](http://cdn.itsong.net/16-7-22/75409456.jpg) ## 起因 最近做gearvr开发时,发现了个画面卡死的问题,表现是画面播着播着突然渲染停止,看起来是主渲染线程被无限制卡死,当时只知道具体现象是可能与http请求有关,一直也没有定位到,而在editor模式

unity的www.dispose()卡死freeze bug

unity

起因

最近做gearvr开发时,发现了个画面卡死的问题,表现是画面播着播着突然渲染停止,看起来是主渲染线程被无限制卡死,当时只知道具体现象是可能与http请求有关,一直也没有定位到,而在editor模式下不会出现类似的问题,所以大概可以确定是在android平台上发生的。我的unity版本是5.3.4f1

调查

最近仔细调试了一下,发现与www的dispose()有关,当然我代码是用的

using(WWW www = new WWW(url))

代码块这样的方式自动调用dispose,我试着直接调用www.dispose()也会有卡死的问题。确定了是dispose()的问题,就在网上看了一些其他人遇到类似的问题。这里我的http请求是服务器一直没有回应,无休止的pending,好吧~

http://answers.unity3d.com/questions/1067499/bug-wwwdispose-when-called-before-wwwisdone-true-f.html

https://issuetracker.unity3d.com/issues/ios-app-freezes-if-www-is-loaded-with-403-url-and-www-dot-dispose-is-called

https://issuetracker.unity3d.com/issues/unity-freezes-when-www-dot-dispose-is-used-while-downloading-assetbundle

https://issuetracker.unity3d.com/issues/android-application-freezes-on-www-dot-dispose-if-connection-is-canceled

大体上说法就是当调用www.dispose()时,如果之前的请求还没结束,那么可能就会发生阻塞卡死,因为是在协程中调用,如果发生阻塞一样会导致主渲染线程阻塞,大概卡死1分多钟吧。

解决方案

要么就不要去调用dispose了,要么换个实现方式吧,比如besthttp插件,哈哈我觉得至少比www使用起来舒服很多。

坑总是很多的,还是要想办法定位和解决。

目录
相关文章
|
图形学 Android开发 iOS开发
|
API 图形学
【2023unity游戏制作-mango的冒险】-前六章API,细节,BUG总结小结
【2023unity游戏制作-mango的冒险】-前六章API,细节,BUG总结小结
106 0
|
移动开发 前端开发 小程序
|
开发工具 图形学
Microsoft Kinect SDK Wrapper For Unity Crash Bug Fix
<p style="border:0px; font-family:'Open Sans',Helvetica,Arial,sans-serif; font-size:16px; margin-top:0px; margin-bottom:24px; outline:0px; padding-top:0px; padding-bottom:0px; vertical-align:basel
2174 0
|
1月前
|
开发框架 Java C#
【Unity逆向】玩游戏遇到的“飞天锁血”是怎么实现的?
【Unity逆向】玩游戏遇到的“飞天锁血”是怎么实现的?
134 0
|
1月前
|
存储 自然语言处理 监控
【Unity 实用工具篇】| 游戏多语言解决方案,官方插件Localization 实现本地化及多种语言切换
Unity的多语言本地化是一个很实用的功能,它可以帮助游戏支持多种语言,让不同语言的玩家都能够更好地体验游戏。 而实现本地化的方案也有很多种,各个方案之间也各有优劣,后面也会对多个方案进行介绍学习。 本文就来介绍一个专门作用于多语言本地化的Unity官方插件:Localization 。 这个插件方便进行游戏的多语言本地化,让游戏支持多种语言,下面就来看看该插件的使用方法吧!
|
1月前
|
定位技术 C# 图形学
Unity和C#游戏编程入门:创建迷宫小球游戏示例
Unity和C#游戏编程入门:创建迷宫小球游戏示例
101 2
|
1月前
|
C# 图形学
【Unity】2D游戏-愤怒的小鸟教学实战(附源码和实现步骤 超详细)
【Unity】2D游戏-愤怒的小鸟教学实战(附源码和实现步骤 超详细)
263 2