コガネブログ

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

【Unity】【Odin - Inspector and Serializer】Inspector にボタンを表示する「Button」属性

目次

「Button」属性

「Button」属性を使用すると
Inspector にボタンを表示できるようになります

f:id:baba_s:20170721143221p:plain

using Sirenix.OdinInspector;
using UnityEngine;

public class Example : MonoBehaviour
{
    [Button]
    private void OnClick1() { }
    
    [Button( "ボタン" )]
    private void OnClick2() { }
    
    [Button( ButtonSizes.Small )]
    private void OnClick3() { }
    
    [Button( ButtonSizes.Medium )]
    private void OnClick4() { }
    
    [Button( ButtonSizes.Large )]
    private void OnClick5() { }
    
    [Button( ButtonSizes.Gigantic )]
    private void OnClick6() { }
    
    [Button, GUIColor( 1, 1, 0, 1 )]
    private void OnClick7() { }
    
    [Button( "ボタン", ButtonSizes.Gigantic ), GUIColor( 0, 1, 1, 1 )]
    private void OnClick8() { }

    private bool IsHide() { return false; }
    private bool IsDisable() { return false; }
    
    [HideIf( "IsHide" )]
    [DisableIf( "IsDisable" )]
    [Button]
    private void OnClick9() { }
}

使い方

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

[Button]
private void OnClick1() { }

ボタンに表示するテキストを指定することもできます

[Button( "ボタン" )]
private void OnClick2() { }

ButtonSizes を指定することでボタンの縦幅を変えることも可能です

[Button( ButtonSizes.Small )]
private void OnClick3() { }

[Button( ButtonSizes.Medium )]
private void OnClick4() { }

[Button( ButtonSizes.Large )]
private void OnClick5() { }

[Button( ButtonSizes.Gigantic )]
private void OnClick6() { }

GUIColor 属性と併用してボタンの色を変更できます

[Button, GUIColor( 1, 1, 0, 1 )]
private void OnClick7() { }

複数の引数や属性を指定することも可能です

[Button( "ボタン", ButtonSizes.Gigantic ), GUIColor( 0, 1, 1, 1 )]
private void OnClick8() { }

HideIf 属性や DisableIf 属性などと併用して
ボタンを表示するかどうかを動的に変更することもできます

private bool IsHide() { return false; }
private bool IsDisable() { return false; }

[HideIf( "IsHide" )]
[DisableIf( "IsDisable" )]
[Button]
private void OnClick9() { }

参考サイト様

Odin Inspector and Serializer | Improve your workflow in Unity