【Unity】インスペクタに編集不可のパラメータを表示してみた

編集不可のパラメータをインスペクターに表示したいという機会があり、PropertyAttribute、PropertyDrawerを継承して処理を書くやり方があったので試しにやってみました。


環境

  • Unity2018.3.7f1
  • MacBookPro Mojave v10.14.3

実装

NonEditableAttribute.csというスクリプトを作成して、PropertyAttributeとPropertyDrawerクラスを継承したクラスを定義しました。(ReadOnlyAttributeという名前にしたかったのですが、Unity側に既にあった為、被らない名前にしました。)

他サイトでは、PropertyDrawerクラスを継承しているクラスはEditorフォルダ内に入れていましたが、#if UNITY_EDITORで囲う形にするとEditorフォルダにいれなくても使えた為、こういう形にしてみました。

使い方はこちら

インスペクタ表示はこんな感じに!

ListのSizeは編集できてしまうようで、ここも編集出来ない形にできると良かったのですが・・・。


まとめ

値を確認したいだけの時に、編集不可にして表示するととても便利でした。他にも色々できそうなのでインスペクタ表示についても色々調べていこうと思います。


参考url

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です