TAKOYAKING’s blog 一覧

TAKOYAKING’s blog

たこ焼き系

Visual Studioで保存時にUnityスクリプトのコンパイルをさせる

Unity 2019.3になってからコンパイル時間が長くなったような気がするので、とても面倒でした。
今まで回ることのなかったレイボーまで回り始めました。

Enter Play Mode Optionsを設定して、スクリプトを一切編集していないときはめちゃくちゃ速くなったのですが、コンパイル時間の解決にはなっていませんでした。

そこで出来るだけ簡単にコンパイル時間の長さの体感だけ下げようと思い、保存したらスクリプトコンパイルをするようにVisual Studioに設定しました。

環境

  • Mac 2019 (Macにしか対応していません)
  • Unity Hub

やり方

【Unity】ソースコード編集->エディタプレイの手間を減らす(Mac) - Flat Leon Works
こちらの記事に書いてありました。

スクリプトコンパイルさせる方法は

AssetDatabase.Refresh();

を行えば良いみたいです。

これをVisual Studioへ入力していきます。
f:id:TAKOYAKING:20200305170741p:plain
※パスは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のパスが取得できたら良いのですが、全く調べていないので、わかりません。

コンパイル速度を速くするなら別の手段の方が良い

この方法はコンパイル速度を改善したわけではないので、根本的解決にはなっていません。ただ手軽に体感を改善できるので僕は気に入っています。

感想

保存した直後にすぐに切り替えると、やっぱり待たされる感はありますが、一呼吸置いて、切り替えた時は、設定していなかった時と比べ、イライラ度はかなり下がりました!

手軽に試せるので、コスパは良いです!