コガネブログ

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

【Unity】【Odin - Inspector and Serializer】条件を満たしているかどうかで項目を編集できるようにする「EnableIf」「DisableIf」属性

目次

「EnableIf」「DisableIf」属性

「EnableIf」属性を使用すると
条件を満たしている場合にのみ変数やプロパティが編集可能になります

「DisableIf」属性を使用すると
条件を満たしていない場合にのみ変数やプロパティが編集可能になります

f:id:baba_s:20170720153608p:plain

using Sirenix.OdinInspector;
using UnityEngine;

public class Example : MonoBehaviour
{
    public bool isEnable;

    [EnableIf( "isEnable" )] public int a1;
    [DisableIf( "isEnable" )] public int a2;
    
    private bool IsEnable()
    {
        return isEnable;
    }
    
    [EnableIf( "IsEnable" )] public int b1;
    [DisableIf( "IsEnable" )] public int b2;
}

使い方

下記の様に記述するだけで使用できます
引数には bool 型の変数の名前を指定します

public bool isEnable;

[EnableIf( "isEnable" )] public int a1;
[DisableIf( "isEnable" )] public int a2;

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

private bool IsEnable()
{
    return isEnable;
}

[EnableIf( "IsEnable" )] public int b1;
[DisableIf( "IsEnable" )] public int b2;

参考サイト様

Sirenix - Odin Inspector : EnableIfAttribute
Sirenix - Odin Inspector : DisableIfAttribute