はじめに
今までUnity2018.2を使用していたのですがUnity2019.4LTSに更新したら5分に1回くらいMacごと落ちるようになりました
さっき解決したので解決方法を残しておきます。
動作環境
- macOS 10.15.5
- Unity2019.4.1f1
Unity2019.4で5分に1回くらいMacが落ちる問題
Unity2019.4でなにかボタンを押した際やマウスカーソルを動かした時にMacがストンと落ちました。
再起動の際にクラッシュ内容が表示されるのでこの内容で調査しました。
panic(cpu 0 caller 0xffffff800964aa3a): Kernel trap at 0xffffff7f8bccf24f, type 14=page fault, registers:
CR0: 0x000000008001003b, CR2: 0x0000000000000000, CR3: 0x000000000d9b6000, CR4: 0x00000000003626e0
RAX: 0x000000000c000304, RBX: 0xffffff80265e2800, RCX: 0x0000000000000001, RDX: 0x0000000000000000
RSP: 0xffffff8117a8bdf0, RBP: 0xffffff8117a8bdf0, RSI: 0x0000000000000000, RDI: 0xffffff803c10c600
R8: 0x0000000000000001, R9: 0xffffff8117a8bc34, R10: 0x0000000000002960, R11: 0x0000000000002960
R12: 0xffffff80265e2800, R13: 0x0000000000000004, R14: 0x0000000000000001, R15: 0xffffff7f8bd2a568
RFL: 0x0000000000010246, RIP: 0xffffff7f8bccf24f, CS: 0x0000000000000008, SS: 0x0000000000000010
Fault CR2: 0x0000000000000000, Error code: 0x0000000000000000, Fault CPU: 0x0, PL: 0, VF: 1
Backtrace (CPU 0), Frame : Return Address
:
0xffffff8117a8bfa0 : 0xffffff80094c513e
Kernel Extensions in backtrace:
com.apple.iokit.IOAcceleratorFamily2(438.5.4)[D695D9DA-7C20-35D6-910F-E7A332A0F515]@0xffffff7f8bcab000->0xffffff7f8bd6ffff
dependency: com.apple.driver.AppleMobileFileIntegrity(1.0.5)[0425E074-601A-3487-A54F-1E675D065186]@0xffffff7f8a1f9000
dependency: com.apple.iokit.IOPCIFamily(2.9)[3C56BB73-D149-3E84-A2EB-DF806779B96C]@0xffffff7f8a2b3000
dependency: com.apple.iokit.IOSurface(269.11)[F1E7389D-2807-3C5D-8A7F-5422542E867F]@0xffffff7f8a6a6000
dependency: com.apple.iokit.IOGraphicsFamily(576.1)[B1C0006F-E1F5-37D9-9548-5F918E92B422]@0xffffff7f8a5bc000
dependency: com.apple.iokit.IOReportFamily(47)[1FB49168-0280-3F04-A99A-F830C915E994]@0xffffff7f89e9f000
com.apple.driver.AppleIntelBDWGraphics(14.0.6)[6139D437-2098-316E-967B-4692BAA82C5B]@0xffffff7f8c19f000->0xffffff7f8c238fff
dependency: com.apple.iokit.IOPCIFamily(2.9)[3C56BB73-D149-3E84-A2EB-DF806779B96C]@0xffffff7f8a2b3000
dependency: com.apple.iokit.IOSurface(269.11)[F1E7389D-2807-3C5D-8A7F-5422542E867F]@0xffffff7f8a6a6000
dependency: com.apple.iokit.IOGraphicsFamily(576.1)[B1C0006F-E1F5-37D9-9548-5F918E92B422]@0xffffff7f8a5bc000
dependency: com.apple.iokit.IOAcceleratorFamily2(438.5.4)[D695D9DA-7C20-35D6-910F-E7A332A0F515]@0xffffff7f8bcab000
BSD process name corresponding to current thread: kernel_task
カーネルがパニックしているようです..。
解決方法: MetalサポートをONにする
以下forumに回答ありました。
https://forum.unity.com/threads/unity-editor-crashes-macos.739535/

Project SettingからMetalサポートをONにすると本エラーが防げるとのこと。
古めのMacで発生するそうです。
上記設定後にクラッシュすることはまだありません。
Unity2019.4でPlayボタンを押したときにUnityがフリーズする問題
上の問題が解決され一件落着!..と思ったのですがプロジェクトによってはUnity Editorで再生ボタンを押すとローディングがくるくるまわりそのままフリーズしました。

解決方法: 旧Firebase SDKを更新する
この問題は100%発生するプロジェクトと全く発生しないプロジェクトがあったので各ライブラリを確認することにしました。
調査の結果、旧Firebase SDKを使用しているプロジェクトで発生していることがわかりました。
Firebaseのドキュメントにはknown-issuesとして4つの問題が挙げられています。
Unity2020特有のIssueもあるので一読するのが良さそうです。
日本語ドキュメントだと表示されないので言語設定を英語にする必要があります。
- .NET compatibility when using Unity 2017.x and later
- Unity 2017.2 networking
- Missing Firebase Android config file in Unity 2020.
- Installation Conflict when using Unity Package Manager
Firebase SDK更新後、再生ボタンを押してもフリーズしないようになりました。