いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

Unityで、スクリプトを編集後Sceneビューに移ってもコンパイルが始まらないようにしたい

前はあまり気にしていなかったんですが、なぜか今回の開発作業ではストレスになっていました。エディタはVisualStudioを使っていますが、スクリプトを編集後、シーンやヒエラルキーなどを見られる画面に移動するとコンパイルが始まってしまい、場合によっては10秒、20秒とキーを受け付けなくなってしまいます。ネットでも書き込みがたくさんあります。見つけた「解決法」をいくつか試し、うまくいったものを紹介します。次の記事です。 

raspberly.hateblo.jp

ぼくの環境では、載っている方法の2つめで自動コンパイルは止まりました。ただ、勝手にコンパイルするのを許可、禁止をいちいちメニューから選ばなければなりません。せめてショートカットキーで何とかならないのか……と探したら方法がありました。まとめて、次のコードで紹介です。Editor.csに以下のクラスを追加するだけです。

-----------------------------------------

public class CompileLock : MonoBehaviour
{
    [MenuItem("Compile/Lock #l")]
    static void Lock ()
    {
        Debug.Log("コンパイルをロック");
        EditorApplication.LockReloadAssemblies();
    }
    [MenuItem("Compile/UnLock #u")]
    static void Unlock ()
    {
        Debug.Log("コンパイルをアンロック");
        EditorApplication.UnlockReloadAssemblies();
    }
}

-----------------------------------------

 [MenuItem("Compile/Lock #l")]

とあるのは、「CompileメニューのLockにショートカットキー【Shift + l】を設定する」の意味です。「#」はシフトキーを表します。他のキーも使えるようですので、ネットで検索してください。ロック、アンロックでそれぞれ「l」「u」を使いました。

 

コンパイルを止めたければ shift + l

コンパイルを再開したければ shift + u

 

ただ、ロックしておくと実行キー(右向き三角のボタン)を押してもコンパイルしてくれませんでしたのでご注意。しばらくこれで使ってみて、問題があったらご報告します。

 

追記(2024年1月28日)

時々、動作が不安定です……。当たり前の要求、右向き三角のキーを押したとき(そしてそのときだけ)にコンパイルする(画像などアセットの変更すべて)、というふうにして欲しいだけなのに……。右向き三角でプログラムが実行されず、以降キーを受け付けなくなることがあったりします。プロジェクトの再起動をすると動くけど。何とかならないものか。