コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】【Odin - Inspector and Serializer】パラメータをグループ分けする「BoxGroup」属性

目次

「BoxGroup」属性

「BoxGroup」属性を使用すると
変数をグループ分けすることができます

f:id:baba_s:20170719120108p:plain

using Sirenix.OdinInspector;
using UnityEngine;

public class Example : MonoBehaviour
{
    [BoxGroup( "グループ A" )] public int a1;
    [BoxGroup( "グループ A" )] public int a2;
    [BoxGroup( "グループ A" )] public int a3;

    [BoxGroup( "グループ B" )] public int b1;
    [BoxGroup( "グループ B" )] public int b2;

    [BoxGroup( "グループ 中央揃え", centerLabel:true )] public int c1;
    [BoxGroup( "グループ 中央揃え", centerLabel:true )] public int c2;
    [BoxGroup( "グループ 中央揃え", centerLabel:true )] public int c3;

    [BoxGroup( "$title" ), LabelText( "title" )] public string title;
    [BoxGroup( "$title" )] public int d1;
    [BoxGroup( "$title" )] public int d2;
    [BoxGroup( "$title" )] public int d3;

    [BoxGroup( "タイトル無し", showLabel:false )] public int e1;
    [BoxGroup( "タイトル無し", showLabel:false )] public int e2;
    [BoxGroup( "タイトル無し", showLabel:false )] public int e3;
}

使い方

下記の様に記述するだけで使用できます

[BoxGroup( "グループ A" )] public int a1;
[BoxGroup( "グループ A" )] public int a2;
[BoxGroup( "グループ A" )] public int a3;

見出しを中央揃えにしたい場合は centerLabel:true を記述します

[BoxGroup( "グループ 中央揃え", centerLabel:true )] public int c1;
[BoxGroup( "グループ 中央揃え", centerLabel:true )] public int c2;
[BoxGroup( "グループ 中央揃え", centerLabel:true )] public int c3;

見出しを動的に変更したい場合は LabelText 属性を併用します

[BoxGroup( "$title" ), LabelText( "title" )] public string title;
[BoxGroup( "$title" )] public int d1;
[BoxGroup( "$title" )] public int d2;
[BoxGroup( "$title" )] public int d3;

見出しを非表示にしたい場合は showLabel:false を記述します

[BoxGroup( "タイトル無し", showLabel:false )] public int e1;
[BoxGroup( "タイトル無し", showLabel:false )] public int e2;
[BoxGroup( "タイトル無し", showLabel:false )] public int e3;

Odin Inspector and Serializer | Improve your workflow in Unity