どんなことを試したか等も書いちゃってるので
「対応策が知りたいんだ!」
と言う方は最後辺りを見てくださいませ。
環境
PC(私) : MacOS Catalina 10.15.5
PC(先輩Nさん) : MacOS Catalina 10.15.3
Unity(アプデ前) : 2018.4.3f1
Unity(アプデ後) : 2019.4.6f1
問題の概要
そもそも何をしようとしていたか
- 昔のエンジンを使って、新たなプロジェクトを作ろうとした。
- 新たなプロジェクトを作るにあたり、Unityのバージョンを上げようとした。
問題の発生
- 先輩NさんがUnityのアップデート作業を行う。
- 問題なくアップデートが済み、リポジトリにPush。
- 私がリポジトリからクローンしてきて動作確認をする。
- 特定動作で私のMacPCを巻き込みクラッシュ!
クラッシュ手順
- プロジェクトを開く
- Editor内のConsole,Inspector,Project等々のwindow配置を変える
- 1〜10回のうちにクラッシュする
例)consoleを移動(これを行うとMacPCもろともクラッシュしました)
調査
ぐぐる
windowを移動するとクラッシュするなんて記事が出てこなかった。
(クラッシュの原因でMetalがどうのこうのと書かれてる記事はいくつか見つけましたが、当プロジェクトでは既にチェックがついていました)
クラッシュログを見てみる
- UnityのEditor.logが作成されなかった
(Editor.logを削除後、クラッシュ手順を踏みました)
https://docs.unity3d.com/ja/2018.4/Manual/LogFiles.html - MacPCのログも見てみたが「.crash」が作成されなかった。
「.panic」ログも作成されていたが、中身が暗号化されたJsonのようなもので読めなかった。
https://gori.me/mac/mac-tips/108863
何の成果も得られなかった...
しらみ潰しで探す
- いろいろファイルを削除してみた結果、UnityProject/ProjectSettings/ProjectSettings.asset が怪しいことがわかった。
- NewProjectを作成 -> 問題のProjectSettings.assetを上書きコピー -> NewProjectでもクラッシュすることがわかった。
- NewProjectをGit管理し、上書いたProjectSettings.assetの怪しい箇所を削除(リセット)してはクラッシュを繰り返す。
- 心が先に折れたので、細かいところまで見つけられなかったが、一部分をDefault設定に戻すことでクラッシュが回避できることがわかった。
(基になったエンジンのProjectSettings.assetを全て流用する必要もないので、ざっくりとDefault設定に戻してもいいかな、なんて)
対処法
手順
- UnityProject/ProjectSettings/ProjectSettings.asset をリセットし、クラッシュが発生しなくなることを確認。
- NewProjectを作成 -> Git管理をする -> 問題のProjectSettings.assetをNewProjectに上書きコピー
- NewProjectのGitにて差分チェック。
- 差分を一部リセット -> クラッシュしないか動作確認 -> クラッシュしたらリセット箇所を復元
- クラッシュしなくなるまでひたすら「4」を頑張る。
- クラッシュしなくなったら、UnityProjectにProjectSettings.assetを上書きコピーする。
本音のところ、エンジンを利用しただけの新プロジェクトなので、ProjectSettings.assetを完全リセットしてもいい気はしてます。
必要な分は改めて再設定しちゃいましょう。
疑問
なぜ先輩Nさんの環境ではクラッシュが発生しなかったのか
おそらく、MacOSの違いかなと思っています。
MacOS 10.15.4 ではアプリのクラッシュやカーネルパニック祭りだったそうなので
MacOS 10.15.5 でも一部不具合が残ったままなのではないでしょうか。
先輩Nさんは 10.15.3 を利用していたのでクラッシュしなかったのだと思います。
が、詳しいところまで調べきれてないので真相は闇の中...
https://applech2.com/archives/20200407-macos-10-15-4-catalina-finder-app-crash-and-kernel-panic.html
最後に
こちらは、完全にクラッシュ問題を解決できるものではありませんので
参考にする方は、あくまで参考であることを念頭に入れていただけますと幸いでです。
また、ProjectSettingsの更新も後々大きな事故に遭う可能性がありますので、細心の注意を払って更新してください。