Unityアプリを起動すると特定の環境で「起動後ブラックスクリーンになりフリーズする」問題が発生しました。この記事は、その問題の発生原因と解決策についてまとめたものです。
対象のUnityアプリは他のMac環境では正常に動作するが、上記のMac環境でUnityアプリを起動すると、Unityアプリ自体は起動するものの、Unityのスプラッシュスクリーンロゴ表示後、アプリウィンドウ画面が真っ黒になり、正常にUnityアプリが起動しない現象が発生。
アクティビティモニターで確認をすると、Unityアプリ起動後、10秒程度で「応答なし」状態になり、Unity製アプリがフリーズする。
~/Library/Logs/Unity/Player.log
に保存されています。
その後詳細な調査をした結果、ブラックスクリーンで応答なしになる原因はマイクを使ったコンポーネントにあることがわかりました。それも、MacOSで内蔵マイク1つのみを使っているときは問題ないが、内蔵マイクの他に音声入力デバイスが1つ以上追加され、そのデバイスから音声入力しているときに発生することがわかりました。
解決策としては、2つありました。
Mac内蔵のマイクよりも高性能な外部マイクを常用している場合、LadioCast を使って、そのデバイスを標準入力と標準出力にするのが最適でしょう。
現象がどのような条件で再現するか不明確であったため、原因を特定するまでにかなり苦労しました…。
Unity2017製アプリ + MacOS + 黒い画面でフリーズし何も表示されない問題が発生するときは、
をチェックしてみて下さい。特に、Oculus Lipsync Unity や MMD4Mecanim LipSync Plugin などのリップシンクを使っている場合は注意が必要です。
本記事が、同様のトラブルが発生して困っている方の役に立てば幸いです。