コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Inspector 内に他オブジェクトの Custom Inspector を表示する「Editor.CreateEditor」

概要

using UnityEngine;

public class Example : MonoBehaviour
{
    public RectTransform target;
}
using UnityEditor;

[CustomEditor( typeof( Example ) )]
public class ExampleEditor : Editor
{
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        var target = serializedObject.FindProperty( "target" );
        if ( target == null ) return;
        var editor = CreateEditor( target.objectReferenceValue );
        if ( editor == null ) return;
        editor.OnInspectorGUI();
    }
}

このようなエディタ拡張のスクリプトを作成した場合

f:id:baba_s:20171229094507p:plain

Example コンポーネントの Inspector に
RectTransform の Custom Inspector が表示されます

関連記事