Unity | エディタ拡張を常に反映させるメモ

インスペクター拡張を行った際等に、ゲームを実行していなくとも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

注意点

プレハブが考慮されておらず、廃止される可能性があります。(段階的に廃止されています。)

資料

関連

インスペクターを拡張するサンプル集です。

参考

ExecuteInEditMode

カスタムエディター

コメント

タイトルとURLをコピーしました