Unity エディタ プログラムの書き換えを行なった時、更新後にコンソールに表示する

概要

Unityでプログラムの書き換えを行なった時、反映されるまでエディタで入力ができてしまう。
f:id:yasuaki-ohama:20160110085932p:plain
そのため、更新後にコンソールに表示するスクリプトを作成した。

機能

  • 更新完了後にコンソールに「スクリプト編集完了」と表示する
  • 実行中だった場合停止し「スクリプト編集完了 実行中のため停止」と表示する

f:id:yasuaki-ohama:20160110084405p:plain
f:id:yasuaki-ohama:20160110084951p:plain

詳細

クラスに以下のコードを加えるとのstaticコンストラクタを持つクラスに記述するとエディタ起動時に独自のスクリプトを実行できる

[InitializeOnLoad]

起動時にEditorApplicationのupdateに登録し毎秒約100回呼ばれる

    static FinishCompiling()
    {
        EditorApplication.update += Update;//エディタで再生中に毎秒約100回呼ばれるコールバック
    }

EditorApplication.isCompilingは数フレームtrueを返すので、最初に「false → true」に切り替わった時のみ表示するようにしている

    private static void Update ()
    {
        if (EditorApplication.isCompiling && !m_isCompiling) {
            ...
        }
        m_isCompiling = EditorApplication.isCompiling;
    }