Skip to content

Frequently Asked Questions

What is DebugKit Runtime?

DebugKit Runtime is a mobile-friendly, in-game debug overlay for Unity. It provides Hierarchy, Inspector, Console, Performance monitoring, and an Admin Control Panel inside your built game, so you can debug and tune on device without the Editor.

Which Unity versions are supported?

Unity 2022 and newer, including Unity 6+. The same integration flow is used across supported versions.

Does it work on mobile?

Yes. The UI is built with UI Toolkit and is designed to be responsive and touch-friendly on phones and tablets.

Is it safe for release builds?

You control whether DebugKit appears in release builds:

  • Development Builds Only (recommended): DebugKit auto-spawns only when Debug.isDebugBuild is true (development builds). It will not appear in release builds.
  • Enable In Builds off: DebugKit never auto-spawns.
  • If you turn off Development Builds Only and leave Enable In Builds on, DebugKit can appear in release builds. Use this only if you intentionally want it there (e.g. internal or QA builds).
Do I need to add DebugKit to every scene?

No. With auto-bootstrap, you do not add any GameObject to the scene. The bootstrap spawns DebugKit from Resources/prefabs/DKManager after the first scene loads. Just keep the prefab at Resources/prefabs/DKManager.

Can I place DebugKit manually?

Yes. Add the DKManager prefab to a scene (or a GameObject with DebugKitManager and UIDocument). If an instance already exists, the bootstrap will not create a second one.

DebugKit does not appear in my build. What should I check?
  1. Enable In Builds is enabled (Editor window → Integration tab or DebugKitSettings asset).
  2. If Development Builds Only is on, the build must be a development build (Unity’s Build Settings → Development Build).
  3. The DKManager prefab exists at Resources/prefabs/DKManager.
  4. No script or build step is stripping the prefab or Resources.
Where are preferences stored?

Preferences (font size, refresh intervals, console options, etc.) are stored in PlayerPrefs under keys prefixed with DebugKit.. They persist between sessions and can be reset from the in-game Settings.

Why don’t I see any Control Panel items?

The Control Panel discovers MonoBehaviour components in loaded scenes that have [ControlPanelMember] or [ControlPanelMethod]. Ensure:

  • The GameObject is active in the hierarchy.
  • The component is in a loaded scene.
  • The attributes are on instance fields/properties/methods (supported types: int, float, bool, string, enum, Vector2/3/4).
  • For methods: parameterless, return type void or bool/int.
Can I capture logs from a build the same way as in the Editor?

Yes. The Console tab captures Application.logMessageReceived at runtime. You get Log, Warning, and Error with optional stack traces, search, and filters. It does not replace the Editor console; it is for use inside the running build.

Does the Performance tab affect FPS?

Sampling runs only when the Performance tab is visible. When you switch to another tab, sampling is paused to minimize impact. You can also use Pause in the Performance view to stop sampling.

Can I edit component values at runtime?

Yes. The Inspector tab shows components of the selected GameObject (from Hierarchy). You can edit fields in real time. Normal mode shows public members; Debug mode shows more (e.g. private). Values refresh periodically; changes are applied immediately when you edit.

How do I change font size or refresh rates?

Use the Settings (gear) in the runtime DebugKit UI. Options are grouped (Appearance, Hierarchy, Inspector, Console, Control Panel, Performance). Changes are applied immediately and saved to PlayerPrefs.

Can I hide the Time Scale block in the Control Panel?

Yes. In SettingsControl Panel, disable Show Time Scale block. The built-in Time Scale section will be hidden; your custom Control Panel items are unaffected.