はじめに
unity標準のインスペクターをかなり使いやすくできるアセットOdin inspectorの紹介です。
Odin inspector を使うことで自分のプロジェクトに特化したエディターを作成し、開発効率が上がります。
アセットストアでも非常に評価が高いアセットです。他のブログ記事でも取り上げられていることが多いので、人気があります。

Odin inspectorの特徴
インスペクターに様々なものが表示できる
ボタンやスライダー、マテリアルのプレビュー表示などが簡単にできるようになります。
ボタンをインスペクターに表示するだけなら、Unity標準機能でも実現できますが、非常に簡単なコードで、様々なサイズのボタンを配置できるため、お手軽です。
標準的なボタンから、

変数の横に表示するボタンなどもあります。

ボタンを横に並べることもできます。

オブジェクトのコンポーネントも表示可能
さらに、オブジェクトのコンポーネントを表示させることで、いちいちオブジェクトをクリックして、そのオブジェクトのインスペクターを見に行く手間が省けます。
1つのインスペクターに複数のオブジェクトのコンポーネントを表示できます。

何度もいじる必要がある要素は一つのインスペクターにまとめておけば、デバッグもはかどりますね。

オブジェクトのコンポーネントまで表示できるのはすごい便利!
そのほか、Unity標準機能では、インスペクターに表示できないprivateな変数を表示できるようにしたり、
自作のウィンドウが簡単に作れるようになる
インスペクターだけではなく、ウィンドウ自体を作ることも可能です。
ゲームで使うデータベースを一覧できるウィンドウを作ることに活用できそうです。画像の左側のように、メニューバーを作成できるので、表示したい項目が多くなっても整理して見やすくできます。

ドキュメントが豊富
また、公式ドキュメントが豊富にあります。
英語で書かれてあるので、抵抗がある方もいるかもしれませんが、コード例や表示画面も記載されてあるので、理解しやすいと思います。
使い方
事前準備
スクリプトの頭に以下のコードをつけます。
using Sirenix.OdinInspector;
これで準備はOK!
あとはインスペクターに表示したいものを入れていきます。
画面上の、Tools > Odin > Inspector > Attribute Overview を見て取り入れたいものを探すのが、実際のプレビュー表示も見えるのでおすすめです。

どのようなものを表示できるか、インスペクターの見え方と、コードについても書いてあるので、使いたいものをコピペしてきましょう。

機能の一例
いろいろ探ってみて、良さそうだと思った機能を紹介します。
ボタンの配置
まずは基本的な機能です。ボタンをインスペクターに配置するコードです。
[Button("ボタンの名前")]
private void Button()
{
// ここにボタンを押した処理を書く
Debug.Log("ボタンを押した!");
}

インスペクターへの設定し忘れを防ぐ
[Required]をつけると、インスペクターに表示したものがNoneになっているときは、エラーコメントを表示して気づかせてくれます。
いつもは実行してからエラーが出て、初めて気づくことが多いので、役立ちそうです。
[Required]
public GameObject MyGameObject;

Dictionary型の表示
通常、Dictionaryをインスペクターに表示するのが難しいのですが、Odin Inspectorでは簡単に表示することができます。

public Dictionary<int, Material> IntMaterialLookup;
Addボタンを押すことで、リストに追加することができます。

インスペクターからDictionaryが編集できる!
変数をまとめて見やすくできる

BoxGroupで、変数をまとめて表示することができます。
[BoxGroup("Some Title")]
public string A;
[BoxGroup("Some Title")]
public string B;
// Box with a centered title.
[BoxGroup("Centered Title", centerLabel: true)]
public string C;
[BoxGroup("Centered Title")]
public string D;
数値をプログレスバーで表示する

[ProgressBar(0, 100)]
public int ProgressBar = 50;
ウィンドウも自作できる
専用のウィンドウも簡単に作成することができます。
チュートリアルは、Tools > Odin > Getting Startedを選択します。


Odin InspectorのGet startedを押します。
Odin Editor Windowsを選択すると、ウィンドウのサンプルとコードを見ることができます。

おわりに
Odin Inspectorのアセットを使ってみました。簡単にインスペクターを使いやすくしたい方におすすめのアセットです。
時間の節約にもなるので、ぜひ使ってみましょう!
