概要
インスペクターのパラメータを横並びにするというものです。Unity標準でありそうでない機能なんですよね。
ちなみに普通は縦に並びます。
使い方
[HorizontalGroup("グループ名")] をまとめたい変数につけてください。
using Sirenix.OdinInspector; ~~~~~~~省略~~~~~~~~ [HorizontalGroup("Hoge")] public int left; [HorizontalGroup("Hoge")] public int center; [HorizontalGroup("Hoge")] public int right;
そうすると・・・横に並んだのですが見切れちゃってますね。
これはラベル幅のデフォルト値がめちゃくちゃでかいからです。
ラベル幅を調整していきます。
LabelWidth で調整します。 これはLeft, Centerといった文字の横幅を変えることができます。単位はピクセルです。
文字の長さによって適宜調整してください。
[HorizontalGroup("Hoge", LabelWidth =40)] public int left; [HorizontalGroup("Hoge")] public int center; [HorizontalGroup("Hoge")] public int right;
結構いい感じになりました。
他Groupと併用する時は注意(階層規約がある!)
他のGroupと併用したときに注意点があります。
例えば以下のBoxGroupとHorizontalGroupを組み合わせた場合表示がバグります。
[BoxGroup("Box", LabelWidth =40)] [HorizontalGroup("Hoge")] public int left; [BoxGroup("Box")] [HorizontalGroup("Hoge")] public int center; [BoxGroup("Box")] [HorizontalGroup("Hoge")] public int right;
↓↓ 同じパラメータが2重で表示されています。
BoxGroupの中にHorizontalGroupを使う時は、
親グループ名/HorizontalGroup名
というグループ名にします。
[BoxGroup("Box")] [HorizontalGroup("Box/Hoge", LabelWidth =40)] public int left; [BoxGroup("Box")] [HorizontalGroup("Box/Hoge")] public int center; [BoxGroup("Box")] [HorizontalGroup("Box/Hoge")] public int right;
これで表示するとちゃんとBoxGroupの中にHorizotalGroupを表示することができました。