unity疑难杂症

本文记录了Unity4.6.0版本中两次点击PLAY按钮导致编辑器崩溃的问题及解决办法,并分享了一个在高通GPU的Android设备上出现的内存溢出问题及其特殊解决方案。

1.问题一


Unity4.6.0f3在EDITOR第二次点PLAY按钮必当机,

调用栈是



(0x0041C820) c:\program files (x86)\microsoft visual studio 10.0\vc\include\xstring (594 + 0x24): std::basic_string<char,std::char_traits<char>,stl_allocator<char,55,4> >::basic_string<char,std::char_traits<char>,stl_allocator<char,55,4> > + 0x80
(0x006C95DD) c:\buildagent\work\d63dfc6385190b60\runtime\mono\monoscript.cpp (366 + 0xdf): BuildScriptClassId + 0x10d
(0x006CE9D8) c:\buildagent\work\d63dfc6385190b60\runtime\mono\monoscriptcache.cpp (588 + 0xd): FindOrCreateMonoScriptCache + 0x58
(0x006C3F5A) c:\buildagent\work\d63dfc6385190b60\runtime\mono\monobehaviour.cpp (1620 + 0xa): MonoBehaviour::SetupScriptingCache + 0x16a
(0x006C5203) c:\buildagent\work\d63dfc6385190b60\runtime\mono\monobehaviour.cpp (1638 + 0x10): MonoBehaviour::RebuildMonoInstance + 0x43
(0x008463D9) c:\buildagent\work\d63dfc6385190b60\runtime\mono\monomanager.cpp (1378 + 0x0): RebuildAllScriptCaches + 0xa9
(0x008464EC) c:\buildagent\work\d63dfc6385190b60\runtime\mono\monomanager.cpp (1404 + 0x7): MonoManager::EndReloadAssembly + 0x5c
(0x008469F1) c:\buildagent\work\d63dfc6385190b60\runtime\mono\monomanager.cpp (1144 + 0x19): MonoManager::ReloadAssembly + 0x81
(0x00D2789B) c:\buildagent\work\d63dfc6385190b60\editor\src\assetpipeline\monocompilationpipeline.cpp (1016 + 0x26): ReloadAllUsedAssemblies + 0x6b
(0x00FF4AA6) c:\buildagent\work\d63dfc6385190b60\editor\src\application.cpp (2423 + 0x0): Application::SetIsPlaying + 0x276
(0x00FFA746) c:\buildagent\work\d63dfc6385190b60\editor\src\application.cpp (1351 + 0x0): Application::TickTimer + 0x756
(0x01098982) c:\buildagent\work\d63dfc6385190b60\editor\platform\windows\wineditormain.cpp (341 + 0x0): MainMessageLoop + 0x1c2
(0x010998CE) c:\buildagent\work\d63dfc6385190b60\editor\platform\windows\wineditormain.cpp (855 + 0x0): WinMain + 0xe3e
(0x011B60F4) f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c (275 + 0x1c): __tmainCRTStartup + 0x11a
(0x7581338A) (kernel32): (filename not available): BaseThreadInitThunk + 0xe
(0x778A9F72) (ntdll): (filename not available): __RtlUserThreadStart + 0x70
(0x778A9F45) (ntdll): (filename not available): _RtlUserThreadStart + 0x1b


查看%appdata%Local/Unity/Editor/Editor-prev.log

发现了以下日志

ReleaseAllScriptCaches did not release all script caches!
 
(Filename: C:/BuildAgent/work/d63dfc6385190b60/Runtime/Mono/MonoManager.cpp Line: 1339)


Remaining caches:
    Assembly-CSharp::UIAtlas
Platform assembly: E:\Program Files (x86)\Unity460\Editor\Data\Managed\nunit.framework.dll (this message is harmless)
Crash!!!


我只能说搞毛啊。

在网上搜了一下,发现只有一个人和我有相同的问题,不过也没有解决方案。

http://forum.unity3d.com/threads/unity-4-5-crashes-every-time-i-hit-play-for-the-second-time-macbook-air.263317/

骚靠了一下。我发现打开Unity时,不要着急运行,先打开一个另外的场景,点一下播放,再停止,再播放,再停止,再打开初始化场景。这样就不会有这个问题了。


1.问题一

unity4.6.0出的包在高通的GPU的ANDROID机上当机,日志是
  (27225):  W/Adreno-ES20(27225): <core_glDrawElementsInstancedXXX:1095>: GL_OUT_OF_MEMORY
 F/libc    (27225): Fatal signal 11 (SIGSEGV), code 2, fault addr 0x3383b03c in tid 27283 (UnityMain) 
查了一天又发现了一些黑科学解决方案
http://stackoverflow.com/questions/25072899/sgs4-android-4-4-2-ogl-es2-crashes
http://issuetracker.unity3d.com/issues/application-crashes-on-android-adreno-based-graphics-drivers
我只有给他们跪了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值