# yukieiji/unityexplorer architecture

> Architecture diagram of the GitHub repository yukieiji/unityexplorer, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/yukieiji/unityexplorer
- Repository: https://github.com/yukieiji/unityexplorer

## Overview

UnityExplorer is an in-game Unity debugging and modification UI. A user enters through a supported loader or standalone/editor setup, opens tools in the UI, then explores scenes and searches for objects, inspects or edits values, evaluates C# code, or manages hooks and runtime controls. Configuration is supplied through loader-specific handlers. The README documents additional search and inspection capabilities; unsampled implementations are represented by their exact enclosing directories, and uncertain wiring is omitted.

Main entry points: [`src/CSConsole/ConsoleController.cs`](https://github.com/yukieiji/unityexplorer/blob/master/src/CSConsole/ConsoleController.cs) (C# console), [`src/UI/UIManager.cs`](https://github.com/yukieiji/unityexplorer/blob/master/src/UI/UIManager.cs) (UI manager), [`src/ExplorerCore.cs`](https://github.com/yukieiji/unityexplorer/blob/master/src/ExplorerCore.cs) (Explorer core), [`src/UI/Panels`](https://github.com/yukieiji/unityexplorer/tree/master/src/UI/Panels) (Tool panels)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry and setup"]
  node_loader["Loader integrations"]
  node_core["Explorer core<br/>[ExplorerCore.cs]"]
  node_runtime["Runtime helpers"]
end

subgraph group_ui["In-game UI"]
  node_ui_manager["UI manager<br/>[UIManager.cs]"]
  node_panels["Tool panels"]
  node_display["Display handling<br/>[DisplayManager.cs]"]
end

subgraph group_explore["Explore and inspect"]
  node_scene["Scene explorer"]
  node_search["Object search"]
  node_inspectors["Inspector manager"]
  node_inspector_types["Inspector views"]
  node_cache["Editable values"]
end

subgraph group_tools["Debug tools"]
  node_console["C&#35; console"]
  node_evaluator["Script evaluator"]
  node_lexer["Syntax lexers<br/>[LexerBuilder.cs]"]
  node_completion["Autocomplete<br/>[CSAutoCompleter.cs]"]
  node_hooks["Hook management"]
  node_game_controls["Game controls"]
end

subgraph group_config["Configuration"]
  node_config_manager["Config manager<br/>[ConfigManager.cs]"]
  node_config_handlers["Loader config handlers"]
end

node_player(("Game user"))
node_unity["Unity runtime"]

node_player -->|"starts explorer"| node_loader
node_loader -->|"initializes"| node_core
node_core -->|"sets up UI"| node_ui_manager
node_core -->|"uses helpers"| node_runtime
node_player -->|"uses tools"| node_ui_manager
node_ui_manager -->|"registers panels"| node_panels
node_ui_manager -->|"initializes display"| node_display
node_display -->|"reads settings"| node_config_manager
node_display -->|"activates display"| node_unity
node_scene -->|"reads scenes"| node_unity
node_inspectors -->|"creates inspectors"| node_inspector_types
node_inspectors -->|"activates panel"| node_ui_manager
node_inspector_types -->|"uses cached values"| node_cache
node_console -->|"compiles input"| node_evaluator
node_console -->|"highlights input"| node_lexer
node_console -->|"gets suggestions"| node_completion
node_console -->|"logs output"| node_core
node_panels -->|"manages hooks"| node_hooks
node_panels -->|"hosts controls"| node_game_controls
node_config_manager -->|"loads and saves"| node_config_handlers
node_config_handlers -->|"persists settings"| node_unity
node_search -->|"searches objects"| node_unity
node_player -->|"traverses scenes"| node_scene
node_player -->|"searches runtime"| node_search
node_player -->|"inspects values"| node_inspectors
node_player -->|"evaluates code"| node_console

click node_loader "https://github.com/yukieiji/unityexplorer/tree/master/src/Loader"
click node_core "https://github.com/yukieiji/unityexplorer/blob/master/src/ExplorerCore.cs"
click node_runtime "https://github.com/yukieiji/unityexplorer/tree/master/src/Runtime"
click node_ui_manager "https://github.com/yukieiji/unityexplorer/blob/master/src/UI/UIManager.cs"
click node_panels "https://github.com/yukieiji/unityexplorer/tree/master/src/UI/Panels"
click node_display "https://github.com/yukieiji/unityexplorer/blob/master/src/UI/DisplayManager.cs"
click node_scene "https://github.com/yukieiji/unityexplorer/tree/master/src/ObjectExplorer"
click node_search "https://github.com/yukieiji/unityexplorer/tree/master/src/ObjectExplorer"
click node_inspectors "https://github.com/yukieiji/unityexplorer/blob/master/src/Inspectors/InspectorManager.cs"
click node_inspector_types "https://github.com/yukieiji/unityexplorer/tree/master/src/Inspectors"
click node_cache "https://github.com/yukieiji/unityexplorer/tree/master/src/CacheObject"
click node_console "https://github.com/yukieiji/unityexplorer/blob/master/src/CSConsole/ConsoleController.cs"
click node_evaluator "https://github.com/yukieiji/unityexplorer/blob/master/src/CSConsole/ConsoleScriptEvaluator.cs"
click node_lexer "https://github.com/yukieiji/unityexplorer/blob/master/src/CSConsole/LexerBuilder.cs"
click node_completion "https://github.com/yukieiji/unityexplorer/blob/master/src/CSConsole/CSAutoCompleter.cs"
click node_hooks "https://github.com/yukieiji/unityexplorer/tree/master/src/Hooks"
click node_game_controls "https://github.com/yukieiji/unityexplorer/tree/master/src/UI/Widgets"
click node_config_manager "https://github.com/yukieiji/unityexplorer/blob/master/src/Config/ConfigManager.cs"
click node_config_handlers "https://github.com/yukieiji/unityexplorer/tree/master/src/Loader"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_loader,node_core,node_runtime,node_player toneBlue
class node_ui_manager,node_panels,node_display toneAmber
class node_scene,node_search,node_inspectors,node_inspector_types,node_cache toneMint
class node_console,node_evaluator,node_lexer,node_completion,node_hooks,node_game_controls toneRose
class node_config_manager,node_config_handlers,node_unity toneIndigo
```

## Components

### Entry and setup

- [Loader integrations](https://github.com/yukieiji/unityexplorer/tree/master/src/Loader): `src/Loader`
- [Explorer core](https://github.com/yukieiji/unityexplorer/blob/master/src/ExplorerCore.cs): `src/ExplorerCore.cs`
- [Runtime helpers](https://github.com/yukieiji/unityexplorer/tree/master/src/Runtime): `src/Runtime`

### In-game UI

- [UI manager](https://github.com/yukieiji/unityexplorer/blob/master/src/UI/UIManager.cs): `src/UI/UIManager.cs`
- [Tool panels](https://github.com/yukieiji/unityexplorer/tree/master/src/UI/Panels): `src/UI/Panels`
- [Display handling](https://github.com/yukieiji/unityexplorer/blob/master/src/UI/DisplayManager.cs): `src/UI/DisplayManager.cs`

### Explore and inspect

- [Scene explorer](https://github.com/yukieiji/unityexplorer/tree/master/src/ObjectExplorer): `src/ObjectExplorer`
- [Object search](https://github.com/yukieiji/unityexplorer/tree/master/src/ObjectExplorer): `src/ObjectExplorer`
- [Inspector manager](https://github.com/yukieiji/unityexplorer/blob/master/src/Inspectors/InspectorManager.cs): `src/Inspectors/InspectorManager.cs`
- [Inspector views](https://github.com/yukieiji/unityexplorer/tree/master/src/Inspectors): `src/Inspectors`
- [Editable values](https://github.com/yukieiji/unityexplorer/tree/master/src/CacheObject): `src/CacheObject`

### Debug tools

- [C# console](https://github.com/yukieiji/unityexplorer/blob/master/src/CSConsole/ConsoleController.cs): `src/CSConsole/ConsoleController.cs`
- [Script evaluator](https://github.com/yukieiji/unityexplorer/blob/master/src/CSConsole/ConsoleScriptEvaluator.cs): `src/CSConsole/ConsoleScriptEvaluator.cs`
- [Syntax lexers](https://github.com/yukieiji/unityexplorer/blob/master/src/CSConsole/LexerBuilder.cs): `src/CSConsole/LexerBuilder.cs`
- [Autocomplete](https://github.com/yukieiji/unityexplorer/blob/master/src/CSConsole/CSAutoCompleter.cs): `src/CSConsole/CSAutoCompleter.cs`
- [Hook management](https://github.com/yukieiji/unityexplorer/tree/master/src/Hooks): `src/Hooks`
- [Game controls](https://github.com/yukieiji/unityexplorer/tree/master/src/UI/Widgets): `src/UI/Widgets`

### Configuration

- [Config manager](https://github.com/yukieiji/unityexplorer/blob/master/src/Config/ConfigManager.cs): `src/Config/ConfigManager.cs`
- [Loader config handlers](https://github.com/yukieiji/unityexplorer/tree/master/src/Loader): `src/Loader`

### Other components

- **Game user**
- **Unity runtime**

## Connections

- Game user → Loader integrations: starts explorer
- Loader integrations → Explorer core: initializes
- Explorer core → UI manager: sets up UI
- Explorer core → Runtime helpers: uses helpers
- Game user → UI manager: uses tools
- UI manager → Tool panels: registers panels
- UI manager → Display handling: initializes display
- Display handling → Config manager: reads settings
- Display handling → Unity runtime: activates display
- Scene explorer → Unity runtime: reads scenes
- Inspector manager → Inspector views: creates inspectors
- Inspector manager → UI manager: activates panel
- Inspector views → Editable values: uses cached values
- C# console → Script evaluator: compiles input
- C# console → Syntax lexers: highlights input
- C# console → Autocomplete: gets suggestions
- C# console → Explorer core: logs output
- Tool panels → Hook management: manages hooks
- Tool panels → Game controls: hosts controls
- Config manager → Loader config handlers: loads and saves
- Loader config handlers → Unity runtime: persists settings
- Object search → Unity runtime: searches objects
- Game user → Scene explorer: traverses scenes
- Game user → Object search: searches runtime
- Game user → Inspector manager: inspects values
- Game user → C# console: evaluates code
