Skip to content

Odin – Inspector and Serializerを買ってみたよ

Posted in 技術記事

UnityAssetStoreでブラックフライデーセールをやっていたので、気になったOdin – Inspector and Serializerと言うものを買ってみました。

実行環境

Windows7 Professional 64bit
Unity5.6.3p1
Odin -Inspector and Serializer 1.0.5.3

どういう人向け?

自分でガンガンエディタ拡張してる人、既に似たような拡張がてんこ盛りの人以外なら一考の価値があると思います。
Attributeって何?という人、デザイナー寄りだったり経験が浅くプログラムがあまり得意でない人、またそういう人がチームにいる場合には特にオススメです。

どういうもの?

このアセットは「エディター拡張」というやつで、インスペクターの表示やUnityそのものの動作を変更します。基本的にゲーム画面には関係せず、開発効率を上げるため=作る人のためのものです。
具体的にはAttributeの拡張ができます。AttributeはUnity C#の機能で、クラスや変数の前に付けることで特別な動作させるものです。
参考:テラシュールブログ – UnityのAttribute(属性)についてまとめてメモる。

どうやって使うの?

購入したあとはインストールをし、使いたいスクリプトの先頭で

using Sirenix.OdinInspector;
とするだけで準備完了です。

どんなことができるの?

例1 配列・リストの順番をインスペクターで編集する

usingが必要といいつつ、これはインストールした時点で動作します。
1つ追加/並べ替え/個別削除ができます。便利。

public List<int> TestList;

例2 メソッドを実行するボタンを作る

ゲーム再生中かどうかを問わず、任意の関数を実行するボタンを表示します。超便利。
実行する関数をPublicにする必要はありません。

//[Button]
//関数の前につける。引数がある場合は使えない
public List<int> TestList;
//ボタンを押すとTestListをソートする
[Button]
void SortList() {
TestList.Sort();
}

//[InlineButton]
//変数の前につける。実行する関数に引数がある場合、その変数を渡す
//ボタンを押すとTestListをソートした後numをaddする
[InlineButton("SortList")]
public int num;
public List<int> TestList;
void SortList(int i) {
TestList.Sort();
TestList.Add(i);
}

例3 表示をまとめて見やすくする

//[FoldoutGroup("グループ名")]
//同じグループ名が付いた変数を一つにまとめて折りたためるようにする
//表示位置は先頭の[FoldoutGroup]基準
[FoldoutGroup("ふぉーるどあうと")]
[InlineButton("SortList")]
public int AddNum;
public string Name;
[FoldoutGroup("ふぉーるどあうと")]
public List<int> TestList;
void SortList(int i) {
TestList.Sort();
TestList.Add(i);
}

もっとないの?

全部解説するととんでもない量になるので、他にどんなのがあるか気になる人はコガネブログさんを見ると良いと思います

Be First to Comment

コメントを残す

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