本日は Unity の小ネタ枠です。
Unityでエディターの更新(Update)時処理をスクリプトで実装する方法についてです。
エディターの更新(Update)時処理をスクリプトで実装する
エディターの更新(Update)時処理をスクリプトで定義するには EditorApplication.update のデリゲートを利用します。
docs.unity3d.com
EditorApplication.update への登録には InitializeOnLoad 属性を利用するとエディター起動時に自動で登録が行われるようになり便利です。
docs.unity3d.com
サンプルスクリプト
以下のサンプルスクリプトを作成しました。エディター再生の一時停止を監視し、一時停止を利用できなくします。
エディター起動またはスクリプトがコンパイル直後に EditorApplication.update に処理が登録されます。
・EditorUpdateTest.cs
using UnityEngine; #if UNITY_EDITOR using UnityEditor; // InitializeOnLoadをつけるとUnityEditorが起動したとき、または // スクリプトがコンパイルされた直後に静的コンストラクタが自動的に実行されます [InitializeOnLoad] public class EditorUpdateTest { static EditorUpdateTest() { EditorApplication.update += Update; } private static void Update() { // エディターが一時停止しないようにする if (UnityEditor.EditorApplication.isPaused) { Debug.Log("Check EditorApplication.isPaused"); UnityEditor.EditorApplication.isPaused = false; } } } #endif