インスペクター拡張を行った際等に、ゲームを実行していなくともMonobehaviourの処理を行いたい場合に使用できます。
コード
下のコードをMonoBehaviourクラスの前に取り付けます。
[ExecuteInEditMode]
サンプルスクリプト
ExecuteInEditModeを取り付ける事によって、以下の例ではTemplate内のメソッドが実行されます。
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace BlueBreath.Sample
{
[ExecuteInEditMode]
public class Template : MonoBehaviour
{
}
#if UNITY_EDITOR
[CustomEditor(typeof(Template))]
public class TemplateEditor : Editor
{
public override void OnInspectorGUI()
{
Template myTarget = (Template)target;
DrawDefaultInspector();
}
}
#endif
}
実行されるメソッド
実行されるメソッドは以下の通りです。
- Awake:※シーンを変更した際
- Update
- OnGUI
- OnRenderObject
注意点
プレハブが考慮されておらず、廃止される可能性があります。(段階的に廃止されています。)
資料
関連
インスペクターを拡張するサンプル集です。
コメント