【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

【Unity】Unity複数起動をメニューからできるようにしてみた

Unityを複数起動したい事が多々あり、以前はターミナルでコマンドを打って起動していましたが、面倒になったのでFileメニューに項目を追加してそこから起動できるようにしてみました。


環境

  • Unity2018.30f2
  • MacBookPro Mojave v10.14.3

準備

まず最初にFileメニューに項目を追加する為に、Editorフォルダを作りそのフォルダ内にCustomMenuFile.csスクリプトを作成しました。

ファイルの中身はこちら

Fileメニューに追加されたものがこちら



実装

使用しているEditorのパスを取得する為に、InternalEditorUtility.GetEngineAssemblyPath関数を使って取得しています。実装はこんな感じに


まとめ

メニュー追加も簡単にでき、複数起動もショートカットキーで簡単に立ち上げれるようになってとても便利になりました。普段よく使う機能をメニュー項目に追加するだけで作業効率が上がっていいですね!


参考url