AppSeedのアプリ開発ブログ

アプリ開発会社AppSeed(アップシード)開発担当のブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsや備忘録、アプリ開発に役立つ情報を発信します。

【Unity】カスタムクラスのpublic変数がInspector上で表示されない場合の対処法

https://unity3d.com/files/images/ogimg.jpg?1

UnityでScrollRectをカスタマイズした際に、
Inspector上でpublic変数の値を変更しようと思ったら、Inspector上で表示されない状態になり一時的に困ってしまったので今後のためにメモ。

普通に自作したクラスであれば以下のようにpublic指定したオブジェクトや変数はInspector上で表示されると思いますが、
【Unity】カスタムクラスのpublic変数がInspector上で表示されない場合の対処法

ScrollRectを継承したカスタムクラスのpublic変数をInspector上で変更しようと思ったら、なぜか表示されません。
スクリプトではpublicにしているのでInspector上でも表示されるはずなのですが、
Inspectorで表示されるのは継承元であるScrollRectのpublic変数だけという謎の状況。

【Unity】カスタムクラスのpublic変数がInspector上で表示されない場合の対処法

【Unity】カスタムクラスのpublic変数がInspector上で表示されない場合の対処法

上記のような場合は、Assets/Editorに以下のスクリプトを仕込めばOKでした。

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(CustomScrollRect))]
public sealed class CustomScrollRectEditor : Editor
{
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();
    }
}