Unity 在 OS X 上崩溃:UnityGfxDeviceWorker 线程崩溃

Unity crash on OS X: UnityGfxDeviceWorker thread crashed

当我缩放或旋转相机时,我的 Unity 应用程序往往会崩溃。我包括了一个简短版本的崩溃报告和一个 link 到完整版本。更多关于我的研究的细节如下。

感谢您的支持。

Process:               Unity [1174]
Path:                  /Applications/Unity/Unity.app/Contents/MacOS/Unity
Identifier:            com.unity3d.UnityEditor5.x
Version:               Unity version 5.3.4f1 (5.3.4f1)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Unity [1174]
User ID:               502

Date/Time:             2016-04-11 15:54:02.621 +0200
OS Version:            Mac OS X 10.11.2 (15C50)
Report Version:        11
Anonymous UUID:        07764B5C-AB89-7381-3C4F-EA3FF9B00068

Sleep/Wake UUID:       5EE47DBD-49A9-439C-9848-9B88CA856A8C

Time Awake Since Boot: 16000 seconds
Time Since Wake:       3400 seconds

System Integrity Protection: enabled

Crashed Thread:        38  UnityGfxDeviceWorker

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
abort() called

另一个似乎相关的部分:

Thread 38 crashed with X86 Thread State (64-bit):
  rax: 0x0000000000000000  rbx: 0x0000000000000006  rcx: 0x000070000a32cc78  rdx: 0x0000000000000000
  rdi: 0x000000000001d71f  rsi: 0x0000000000000006  rbp: 0x000070000a32cca0  rsp: 0x000070000a32cc78
   r8: 0x0000000000000040   r9: 0x00007fff7c7551e0  r10: 0x0000000008000000  r11: 0x0000000000000206
  r12: 0x0000000109dde751  r13: 0x00007fff7c755bd0  r14: 0x000070000a32f000  r15: 0x00000000000004ae
  rip: 0x00007fff96062002  rfl: 0x0000000000000206  cr2: 0x00007fff7bf18118

Logical CPU:     0
Error Code:      0x02000148
Trap Number:     133

您可以在此处找到完整报告:http://pastebin.com/D0L7CX9W

到目前为止,我对该主题的研究是使用与 post 关联的标签在 Whosebug 上进行搜索。阅读一些内容后,我放弃了 iOS 或其他应用程序的无用结果。

我找到的最接近的匹配是此处未回答的问题:Unity 5 crashes under Mac OSX Yosemite,尽管可能存在一些显着差异。我使用的是 El-Capitan,一个较新版本的 unity(5.3.4f1 与 5.0.0f4),我的崩溃报告来自 Unity,而不是来自 Unity 构建的应用程序。然而,崩溃的是同一个线程 "UnityGfxDeviceWorker",所以也许他们有相同的解决方案。

我的其他搜索未能成功找到与 Unity 崩溃情况类似的问题,除了在构建、启动或类似情况时。

再次感谢您花时间阅读本文,非常感谢您的帮助。

我在 iOS 遇到了这个崩溃。我通过在 Unity 中仅使用 OpenGL ES2.0 来解决这个问题。您可以尝试仅使用 OpenGL 并关闭 Metal。 https://answers.unity.com/questions/1283609/gfx-device-intialization-failed-and-crash-on-ios-s.html

这是一个对我有用的答案。在我的构建设置中,我进入 Other Settings>Mac App Store Options 并将 Bundle Identifier 更改为默认值以外的内容com.Company.ProductName。我猜我有点名字冲突之类的。

无论如何,我做到了 com.Company.ProductName2 并且成功了。这是一个解决方法,所以不确定是什么导致了问题 - 我的 OSX-fu 很弱。

通过在编辑方案 -> 运行 -> Xcode 中取消选中金属 API 验证标志来解决它。使用 Unity 2020.1.9f1.