How do you disable the HDRP debug menu?

You can enable it when you push down on both thumbsticks.
It’s useful for debugging but I’d like to disable it for my final builds.
And I can’t seem to find an option to do so?
There’s a Runtime Debug Display toggle in the HDRP Asset but that doesn’t seem to do anything.

Uncheck this box:

1 Like

Thanks for the reply, but I’ve mentioned it above, “There’s a Runtime Debug Display toggle in the HDRP Asset but that doesn’t seem to do anything.”
It still shows up in the editor and the final build. If this option definitely disables it for you, then there’s something wrong with my setup and I’ll look into it more. I’ll also try to check it in a test project.

It will still be toggleable in the editor, but it will be disabled for the build.

Fun fact: Left Ctrl-Backspace will toggle it too.

Unity - 2018.3.0f2
HDRP - 4.1.0
Made a new default HDRP project, and that toggle doesn’t seem to do anything.
Tested on a non-development build with the option enabled and disabled.
I’ve got the fully updated package versions installed on my personal project with the same issue.

I posted on Reddit as well. Fixed thanks to u\Alibient_Interactive, find the file:
High Definition RP\Runtime\Core\Debugging\DebugUpdater.cs
And comment out everything in Update.
This seems to be a bug with the HDRP settings. You wouldn’t want this menu to be accessed on a final build.

2 Likes

Has anyone found a way to disable this thing in 2020.2? I found DebugUpdater and commented it out, but it’s considered an “immutable asset” and is reloaded from the package every time I change it.

It sure is annoying as hell when testing UI or functionality that happens to use a similar hotkey. It’s kinda infuriating that there’s a whole menu that just appears out of nowhere that’s buried away in the debug settings that can’t seem to be disabled.

1 Like

You can hide it if you want, with:

static class DebugUpdaterDestroyer {
    // this will make the component standalone.. no need to manually add it to any GameObjects to trigger
    [RuntimeInitializeOnLoad] static void InitUpdaterDestroyer() => new GameObject("").AddComponent<DebugUpdaterDestroyerInternal>();

    // making this private and a sub-class will hide it from the 'Add Component' menu.
    class DebugUpdaterDestroyerInternal : MonoBehaviour {
        void Start() {
            Destroy(GameObject.Find("[Debug Updater"]));
            Destroy(this.gameObject);
        }
    }
}

…or if you have your coroutine utilities set up:

static class DebugUpdaterDestroyer {
    [RuntimeInitializeOnLoad] static void DestroyDebugUpdater() => CoroutineUtilities.RunNextFrame(() => Destroy(GameObject.Find("[Debug Updater"]));
}

An easy way to disable it is by just running UnityEngine.Rendering.DebugManager.instance.enableRuntimeUI = false; in any script

2 Likes

Effective, thanks very much!