Unity 2019.3になってからコンパイル時間が長くなったような気がするので、とても面倒でした。
今まで回ることのなかったレイボーまで回り始めました。
Enter Play Mode Optionsを設定して、スクリプトを一切編集していないときはめちゃくちゃ速くなったのですが、コンパイル時間の解決にはなっていませんでした。
そこで出来るだけ簡単にコンパイル時間の長さの体感だけ下げようと思い、保存したらスクリプトのコンパイルをするようにVisual Studioに設定しました。
やり方
【Unity】ソースコード編集->エディタプレイの手間を減らす(Mac) - Flat Leon Works
こちらの記事に書いてありました。
AssetDatabase.Refresh();
を行えば良いみたいです。
これをVisual Studioへ入力していきます。
※パスはUnity2019.3.3を利用しているので3.3となります。(変更必要)
タイトル: Refresh
コマンド: open
引数(A): /Applications/Unity/Hub/Editor/2019.3.3f1/Unity.app -g --args -executeMethod AssetDatabase.Refresh
現在のファイルを保存: On
解説
コマンドラインからUnityへコマンド実行させるコマンドは以下になります。
(保存後以下のコマンドを手動で実行しても同じことになります)
open /Applications/Unity/Hub/Editor/2019.3.3f1/Unity.app -g --args -executeMethod AssetDatabase.Refresh
openはアプリを開くコマンドで色々optionがあります。
-g: 背面にあるアプリを前面にしない
これをつけていないと保存のたびにUnityの画面に切り替わってしまいます。
--args: 引数 (-executeMethod AssetDatabase.Refresh)
Unityのコマンドラインのオプション
-executeMethod: メソッドを実行できる(ここにAssetDatabase.Refreshを指定)
懸念事項
Visual Studioの設定にすでにある?
設定にこれと同機能があるように見えるのですが、なぜか動作していません。もしかするとUnityHubを使っているせいかもしれません。UnityHubとUnity単体のパスは違うのでそのせいかもしれません。(想像です。)
Unityのアップグレードのたびにパスを変更する必要がある
今の所Unityまでのパスの取得方法は直接書いてしまっているので、もし2019.4とかになるといちいち書き直す必要があります。
Visual Studioで今開いているUnityのパスが取得できたら良いのですが、全く調べていないので、わかりません。
感想
保存した直後にすぐに切り替えると、やっぱり待たされる感はありますが、一呼吸置いて、切り替えた時は、設定していなかった時と比べ、イライラ度はかなり下がりました!
手軽に試せるので、コスパは良いです!