相关文章推荐
坚强的啄木鸟  ·  Unity 之 ...·  2 周前    · 
风流的松树  ·  Unity ...·  2 周前    · 
另类的开水瓶  ·  c# unity3d ...·  2 周前    · 
文雅的领结  ·  使用Android ...·  1 年前    · 
八块腹肌的草稿本  ·  link fatal error ...·  1 年前    · 
发财的包子  ·  Spring ...·  1 年前    · 

最近做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使用起来舒服很多。

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

Loadrunner11创建脚本、打开vugen、controller、analysis超级慢的解决方法
Loadrunner11创建脚本、打开vugen、controller、analysis超级慢的解决方法
Unity3D 2018版本 Post Process 后期处理插件使用介绍
Post-processing是将全屏的滤镜和特效应用于摄像机的图像缓冲区,然后渲染在屏幕上的过程。只需要花费较少的时间进行设置,就可以大大提高产品的视觉效果。
两天没登博客,今天突然无法进入管理员界面了,通常都是在网站后缀加上/wp-admin进去,今天竟然出现了进不去的情况,具体网页上面显示: oldpan.me/login__trashed?redirect_to=https%3A%2F%2Foldpan.me%2Fwp-admin%2Findex.php 也就是无法找到该页面,通常来说就是404界面。