この記事でのバージョン
Unity 2021.3.11f1
Odin Inspector and Serializer 3.1.6
概要
自作クラスに対してSerializeFieldを付けた際、Inspector側はこうなると思います。
この状態だと少し見づらいときに、以下のようにするサンプルです。
コード
[Serializable] [HideLabel] public class EnemyParameter { [SerializeField, LabelText("HP")] private int _hp; [SerializeField, LabelText("攻撃力")] private int _attackPower; [SerializeField, LabelText("防御力")] private int _defensivePower; } [CreateAssetMenu(fileName = "EnemyTable", menuName = "EnemyTable", order = 0)] public class EnemyTable : ScriptableObject { [SerializeField, Title("敵1")] private EnemyParameter _enemyParameter01; [SerializeField, Title("敵2")] private EnemyParameter _enemyParameter02; [SerializeField, Title("敵3")] private EnemyParameter _enemyParameter03; }
シリアライズ対象のクラスにHideLabelを付け、シリアライズする側でLabelTextの代わりにTitleを使用します。
HideLabelの部分にIndentを追加すると一律でIndentさせることも可能です。
[Serializable] [HideLabel] [Indent] public class EnemyParameter { [SerializeField, LabelText("HP")] private int _hp; [SerializeField, LabelText("攻撃力")] private int _attackPower; [SerializeField, LabelText("防御力")] private int _defensivePower; }