コガネブログ

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

【C#】Conditional 属性でシンボルが定義されている場合に関数を無効化する方法

概要

using UnityEngine;

public class Example : MonoBehaviour
{
    private void Update()
    {
        Log( "ピカチュウ" );
    }

#if DISABLE_DEBUG_LOG
    [System.Diagnostics.Conditional( "DUMMY" )]
#endif
    private void Log( string message )
    {
        Debug.Log( message );
    }
}

例えば上記のようなコードを記述することで
DISABLE_DEBUG_LOG シンボルが定義されている場合は
Log 関数が呼び出されなくなります

DISABLE_DEBUG_LOG シンボルが定義されていると Conditional 属性が有効になり、
DUMMY シンボルが定義されていないので Log 関数が無効になる、といった感じです