コガネブログ

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

【Unity】UnityプロジェクトをUnity5.5にアップデートするとスクリプトの先頭の#ifの記述が動作しなくなる?

#if !ENABLE_RELEASE
#define DISABLE_RELEASE
#endif

public class Example
{
    public void Log()
    {
#if DISABLE_RELEASE
        UnityEngine.Debug.Log( "テスト" );
#endif
    }
}

上記の様な、リリースビルド用の ENABLE_RELEASE シンボルが定義されていなければ
開発ビルド用の DISABLE_RELEASE シンボルを定義して
スクリプト内の開発ビルド用の処理を有効化する処理を記述していたプロジェクトを
Unity5.5にアップデートしたところ、
ENABLE_RELEASE を定義していなくても DISABLE_RELEASE が定義されずに
開発ビルド用の処理がまったく呼び出されない現象に遭遇した

PlayerSettings の Scripting Define Symbols に
明示的に DISABLE_RELEASE を定義するようにしたら
正常に開発ビルド用の処理が呼び出されるようになった

Unity5.5からは#ifの挙動が変わった?