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

Before
C#
#if DEVELOPMENT_BUILD
    Debug.Log($"Spawned {count} enemies");
#endif
After
C#
#if UNITY_ENABLE_CHECKS
    Debug.Log($"Spawned {count} enemies");
#endif

Find 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 checker

Questions

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.

Sources

Related Unity 6 changes

Every Unity 6.x change, by version