うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】CustomInspector の テンプレートコードを出力するツール

毎度同じような CustomInspector のコードを書くのが面倒になったので作成ツールを作りました

f:id:hacchi_man:20210130033548p:plain:w350

github.com

使い方

対象のスクリプトを選択するとシリアライズされているフィールド一覧が表示されるので、必要なフィールド一覧を選択します

f:id:hacchi_man:20210201001457p:plain:w250

Set Script Object にチェックを入れると、以下のように target の型キャストをしてくれます

_sampleMonoBehaviour = target as SampleMonoBehaviour;

f:id:hacchi_man:20210201001507p:plain:w250

あとは Create Script をクリックすると、保存先を選ぶ UI が出るので選ぶだけ

出力サンプル

例えば下記コードをこのツールを用いると

using UnityEngine;

namespace Sample
{
    public class SampleMonoBehaviour : MonoBehaviour
    {
        [SerializeField]
        private int _intValue;
    }
}

下記のコードが出力されます

using UnityEditor;

namespace Sample
{
    [CustomEditor(typeof(SampleMonoBehaviour))]
    public class SampleMonoBehaviourEditor : Editor
    {
        private SampleMonoBehaviour _sampleMonoBehaviour;

        private SerializedProperty _intValue;
        private SerializedProperty _script;

        private void OnEnable()
        {
            _script = serializedObject.FindProperty("m_Script");
            _intValue = serializedObject.FindProperty("_intValue");
            _sampleMonoBehaviour = target as SampleMonoBehaviour;
        }

        public override void OnInspectorGUI()
        {
            using (new EditorGUI.DisabledScope(true))
            {
                EditorGUILayout.PropertyField(_script);
            }

            EditorGUILayout.PropertyField(_intValue);
        }
    }
}