DEVELOPMENT_BUILD and UNITY_64 are deprecated in Unity 6.6
Unity 6.6 deprecated the DEVELOPMENT_BUILD and UNITY_64 scripting symbols and BuildOptions.ForceEnableAssertions. What to check instead in your #if blocks and build scripts.
- Status
- Obsolete since Unity 6.6 · Build
- Old
DEVELOPMENT_BUILD, UNITY_64, BuildOptions.ForceEnableAssertions- New
UNITY_ENABLE_CHECKS, UNITY_INCLUDE_INSTRUMENTATION, IntPtr.Size- Checked
- 2026-10-05, against the sources below
What changed
Unity 6.6 splits what a development build used to mean into separate settings, and deprecates the symbol that lumped them together. Replace #if DEVELOPMENT_BUILD with UNITY_ENABLE_CHECKS for debug-only checks, or UNITY_INCLUDE_INSTRUMENTATION for profiling and diagnostics code.
UNITY_64 is deprecated as well; check IntPtr.Size == 8 at runtime instead. In build scripts, BuildOptions.ForceEnableAssertions is now marked obsolete.
Before and after
#if DEVELOPMENT_BUILD
Debug.Log($"Spawned {count} enemies");
#endif#if UNITY_ENABLE_CHECKS
Debug.Log($"Spawned {count} enemies");
#endifFind every place it appears
This change needs a hand edit, but the Unity 6 Script Upgrade Checker points to every line it affects, together with the other changes for your target version.
Open this example in the checkerQuestions
- How do I keep debug-only code working on 6.5 and 6.6?
- Combine the version define with the new symbol:
#if (UNITY_6000_6_OR_NEWER && UNITY_ENABLE_CHECKS) || (!UNITY_6000_6_OR_NEWER && DEVELOPMENT_BUILD). Once you drop support for older versions, keep only UNITY_ENABLE_CHECKS. - Does this affect UNITY_EDITOR checks?
- No. UNITY_EDITOR and the platform defines are unchanged; only DEVELOPMENT_BUILD and UNITY_64 are deprecated.