Editor拡張の話です。
EditorApplication.playModeStateChanged
EditorApplication.playModeStateChangedという関数があります。こちらは、PlayモードとEditorモードの2つのモードの切り替え時に呼び出されます。 PlayModeStateChangeという型の引数が渡され、この引数を参照してそれぞれの処理を実装します。
実装例
static TestScriptEditor() { EditorApplication.playModeStateChanged += OnChanged; } private static void OnChanged(PlayModeStateChange state) { switch (state) { case PlayModeStateChange.EnteredEditMode: Debug.Log("Entered Edit Mode"); break; case PlayModeStateChange.ExitingEditMode: Debug.Log("Exiting Edit Mode"); break; case PlayModeStateChange.EnteredPlayMode: Debug.Log("Entered Play Mode"); break; case PlayModeStateChange.ExitingPlayMode: Debug.Log("Exiting Play Mode"); break; } }
Selection.selectionChanged
Selection.selectionChangedは、エディタ内で選択が変更されたときに発生します。 エディタ内でゲームオブジェクトやアセットなどの選択が変わると、このイベントが発生します。
実装例
static TestScriptEditor() { Selection.selectionChanged += OnSelectionChanged; } private static void OnSelectionChanged() { Debug.Log("Selection Changed"); }
UnityEditor.Callbacks.DidReloadScripts
UnityEditor.Callbacks.DidReloadScripts属性が付けられている関数は、スクリプトがリロードされたときに呼び出されます。 スクリプトがリロードされるのは、主に新しいスクリプトが作成されたとき、既存のスクリプトが変更されたとき、またはUnityエディタが再起動されたときです。
実装例
[UnityEditor.Callbacks.DidReloadScripts] private static void OnScriptsReloaded() { }