コガネブログ

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

【Unity】【Odin - Inspector and Serializer】詳細な説明文付きでインフォメーションを表示する「DetailedInfoBox」属性

目次

「DetailedInfoBox」属性

「DetailedInfoBox」属性を使用すると
Inspector に詳細な説明文付きインフォメーションを表示できます
説明文はクリックで開閉可能です

f:id:baba_s:20170720153058p:plain

using Sirenix.OdinInspector;
using UnityEngine;

public class Example : MonoBehaviour
{
    [DetailedInfoBox( "ピカチュウ", "ほっぺたの りょうがわに ちいさい でんきぶくろを もつ。" )]
    public int a1;
    
    [DetailedInfoBox( "カイリュー", "おおきな たいかくで そらを とぶ", InfoMessageType.Warning )]
    public int a2;
    
    [DetailedInfoBox( "ヤドラン", "うみのちかくで のんびり くらす", InfoMessageType.Error )]
    public int a3;
    
    [DetailedInfoBox( "ピジョン", "あしの ツメが はったつしている", InfoMessageType.None )]
    public int a4;

    public bool isEnable;
    
    [DetailedInfoBox( "コダック", "いつも ずつうに なやまされている", visibleIf:"isEnable" )]
    public int b1;

    private bool IsEnable()
    {
        return isEnable;
    }
    
    [DetailedInfoBox( "コラッタ", "キバは ながくて するどい", visibleIf:"IsEnable" )]
    public int b2;
}

使い方

下記の様に記述するだけで使用できます
引数に InfoMessageType を設定することで
アイコンの表記を変更できます

[DetailedInfoBox( "ピカチュウ", "ほっぺたの りょうがわに ちいさい でんきぶくろを もつ。" )]
public int a1;

[DetailedInfoBox( "カイリュー", "おおきな たいかくで そらを とぶ", InfoMessageType.Warning )]
public int a2;

[DetailedInfoBox( "ヤドラン", "うみのちかくで のんびり くらす", InfoMessageType.Error )]
public int a3;

[DetailedInfoBox( "ピジョン", "あしの ツメが はったつしている", InfoMessageType.None )]
public int a4;
InfoMessageType 内容
None なし
Info インフォメーションアイコン
Warning 警告アイコン
Error エラーアイコン

引数に bool 型の変数の名前を指定することで
条件を満たしている場合にのみ
インフォメーションを表示することもできます

public bool isEnable;

[DetailedInfoBox( "コダック", "いつも ずつうに なやまされている", visibleIf:"isEnable" )]
public int b1;

引数には bool 値を返す関数の名前を指定することもできます

private bool IsEnable()
{
    return isEnable;
}

[DetailedInfoBox( "コラッタ", "キバは ながくて するどい", visibleIf:"IsEnable" )]
public int b2;

参考サイト様

Odin Inspector and Serializer | Improve your workflow in Unity