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
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
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP