この記事でのバージョン
Unity 2019.4.14f1
Unity 2020.3.17f1
はじめに
最近MacをAppleシリコン版(M1 Max)に変えたのですが、
一ヶ月一万円生活
— カン@ゲームクリエイター(Unity/VR/Switch/Steam) (@Kan_Kikuchi) 2021年11月16日
一日目
16インチMacBook Pro - スペースグレイ
64GBユニファイドメモリ
2TB SSDストレージ
16インチLiquid Retina XDRディスプレイ
10コアCPU、32コアGPU、16コアNeural Engine搭載Apple M1 Max
AppleCare+
合計 507,800円
残金 -497,800円 pic.twitter.com/Y1WDZ1hc6Y
それまで特に問題なかった複数のUnityのプロジェクトが急に開けなくなったり、
エラーが出て正常に動作しなくなったりしたので、
今回はその時にどうしたのかという対処法をまとめた記事です!
ちなみにOSがMontereyになった事が原因の可能性もあるのであしからず。
起動オプション
以下の記事ではUnity2019にアップグレードした時の話ですが、
同様の現象が自分はAppleシリコン版 Macにした時に起こりました。
プロジェクトをUnity2018から2019にアップグレード後、起動すると以下のようなエラーを出してハングアップする。
解決策も上記記事と同じで-force-metalというオプションをつけて起動するだけ。
具体的にはUnityHubで対象のプロジェクトの横にある「︙」を押し、
「詳細なプロジェクト設定」からオプションを設定する感じです。
Beta版の場合は「コマンドライン引数を加える」から設定します。
ちなみに-force-metalはグラフィックスAPIはMetalを使うようにするというものです。
Make the Editor use Metal as the default graphics API (macOS only).
DeepL翻訳
エディターがデフォルトのグラフィックスAPIとしてMetalを使用するようにしました(macOSのみ)。
なお、ターミナルからオプションをつけて起動したい場合は以下のドキュメントを参考のこと。
Oculus Integrationのプラグイン
以下のツイートにもあるようにOculus機器向けに使うアセット
Oculus Integrationのプラグインが原因で起動出来ない場合もありました。
m1 macでUnityのOculus Questアプリ作れるかなと思って試してるが、Oculus Integrationのインポートでクラッシュ。SpatializerフォルダのmacOSのpluginがダメみたいでこれがあるとプロジェクトが開かなくなる。
— なっつー@BNUT (@yashinut) 2020年11月22日
根本的な原因はAudioPluginOculusSpatializer.bundleというファイルなのですが、
これだけ消すとエラーが出るので、その大本のSpatializerというフォルダと
AudioManagerというフォルダを一緒に消すと起動出来るようになりました。
(もちろんOculus IntegrationのAudioManager等の機能は使えなくなります。)
プロジェクトのリセット
プロジェクトをCloneし直したらエラーが消える場合もありました。
具体的にはAssets、Packages、ProjectSettingsだけにして
(LibraryやTemp等を消して)開きなおすイメージです。
ちなみに不具合が改善する事が多い「Libraryだけを消して再起動」では直りませんでした。