Using scripting #if define symbols in DLLs


I created a new Debug DLL and imported it into the Plugins folder. Everything works fine except that scripting define symbols which are defined in Unity aren’t picked up inside the DLL. The DLL code contains this:

public static class Debug
	public static void Check()
		UnityEngine.Debug.Log("Debug output is ON");
		UnityEngine.Debug.Log("Debug output is OFF");

In Unity, I’ve set DEBUG_OUTPUT_OFF for the current build platform, but calling this:


		Debug.Log("Output seems to be off in Unity");

…produces this output:

Debug output is ON

Output seems to be off in Unity

So is there a way to make Unity’s scripting define symbols available to DLL code?

The defines are compile time things. Once you compile your code, they don’t exist, and the code that they filter out doesn’t exist.

Your plugin dlls are already compiled outside of Unity. That means they don’t and can’t know anything about compile conditions you’ve set up.

What are you trying to do?