TransWikia.com

Difference between #DEBUG and #DEVELOPMENT_BUILD in Unity?

Game Development Asked by Emad on August 12, 2020

I’ve seen these two special compilation macros in our code base, What’s the difference between #Debug and #DEVELOPEMENT_BUILD in Unity? What’s the main purpose of using each?

#if DEBUG
Debug.Log("DEBUG");
#endif

#if DEVELOPMENT_BUILD
Debug.Log("DEVELOPMENT_BUILD");
#endif

2 Answers

In my testing with Unity 2018 (and it is different in Unity 2020 according to the comments), I found DEBUG is true in the editor and during development builds (it is true during the build so the code is compiled into the build). DEBUG is not true during release builds.

DEVELOPMENT_BUILD is never true in the editor except during development builds (so the code is only runs in development builds, never in the editor). I'm not sure whether editor callbacks (surrounded with #if DEVELOPMENT_BUILD) would run while compiling a development build.

This preprocessor directive is not documented. I reported the omission as a documentation bug, but they may not consider it their responsibility to document .NET conventions.

Answered by piojo on August 12, 2020

From these docs:

You use the DEVELOPMENT_BUILD #define to identify whether your script is running in a player which was built with the “Development Build” option enabled.

On the other hand, DEBUG doesn't exist.

Answered by Bálint on August 12, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP