mirror of
https://github.com/originalnicodr/CinematicUnityExplorer.git
synced 2026-10-11 01:48:07 +08:00
91d5fc284fe7fdc92a7177b37e2f1d83906ccf0b
An in-game explorer and a suite of debugging tools for IL2CPP and Mono Unity games, to aid with modding development.
Releases
| Mod Loader | IL2CPP | Mono |
|---|---|---|
| MelonLoader | ✔️ link | ✔️ link |
| BepInEx | ❔ link | ✔️ link |
IL2CPP Issues:
- Some methods may still fail with a
MissingMethodException, please let me know if you experience this (with full debug log please). - Reflection may fail with certain types, see here for more details.
Features
- Scene Explorer: Simple menu to traverse the Transform heirarchy of the scene.
- GameObject Inspector: Various helpful tools to see and manipulate the GameObject, similar to what you can do in the Editor.
- Reflection Inspector: Inspect Properties and Fields. Can also set primitive values and evaluate primitive methods.
- Search: Search for UnityEngine.Objects with various filters, or use the helpers for static Instances and Classes.
- C# Console: Interactive console for evaluating C# methods on the fly, with some basic helpers.
- Inspect-under-mouse: Hover over an object with a collider and inspect it by clicking on it.
How to install
BepInEx
- Install BepInEx for your game.
- Download the UnityExplorer release for BepInEx IL2CPP or Mono above.
- Take the
UnityExplorer.dllfile and put it in[GameFolder]\BepInEx\plugins\ - Take the
UnityExplorer\folder (withexplorerui.bundle) and put it in[GameFolder]\Mods\, so it looks like[GameFolder]\Mods\UnityExplorer\explorerui.bundle. - In IL2CPP, it is highly recommended to get the base Unity libs for the game's Unity version and put them in the
BepInEx\unhollowed\base\folder.
MelonLoader
- Install MelonLoader for your game.
- Download the UnityExplorer release for MelonLoader IL2CPP or Mono above.
- Take the contents of the release and put it in the
[GameFolder]\Mods\folder. It should look like[GameFolder]\Mods\UnityExplorer.dlland[GameFolder]\Mods\UnityExplorer\explorerui.bundle.
Mod Config
You can access the settings via the "Options" page of the main menu, or directly from the config at Mods\UnityExplorer\config.xml (generated after first launch).
Main Menu Toggle (KeyCode)
- Default:
F7 - See this article for a full list of all accepted KeyCodes.
Force Unlock Mouse (bool)
- Default:
true - Forces the cursor to be unlocked and visible while the UnityExplorer menu is open, and prevents anything else taking control.
Default Page Limit (int)
- Default:
25 - Sets the default items per page when viewing lists or search results.
- Requires a restart to take effect, apart from Reflection Inspector tabs.
Default Output Path (string)
- Default:
Mods\Explorer - Where output is generated to, by default (for Texture PNG saving, etc).
Log Unity Debug (bool)
- Default:
false - Listens for Unity
Debug.Logmessages and prints them to UnityExplorer's log.
Building
If you'd like to build this yourself, you will need to have installed BepInEx and/or MelonLoader for at least one Unity game. If you want to build all 4 versions, you will need at least one IL2CPP and one Mono game, with BepInEx and MelonLoader installed for both.
- Install MelonLoader or BepInEx for your game.
- Open the
src\Explorer.csprojfile in a text editor. - Set the relevant
GameFoldervalues for the versions you want to build, eg. setMLCppGameFolderif you want to build for a MelonLoader IL2CPP game. - Open the
src\Explorer.slnproject. - Select
Solution 'UnityExplorer' (1 of 1 project)in the Solution Explorer panel, and set the Active config property to the version you want to build, then build it. - The DLLs are built to the
Release\folder in the root of the repository. - If ILRepack fails or is missing, use the NuGet package manager to re-install
ILRepack.Lib.MSBuild.Task, then re-build.
Credits
Written by Sinai.
Thanks to:
- ManlyMarco for their Runtime Unity Editor, which I used for some aspects of the C# Console and Auto-Complete features.
- denikson (aka Horse) for mcs-unity. I commented out the
SkipVisibilityExtconstructor since it was causing an exception with the Hook it attempted in IL2CPP.
Languages
C#
98.2%
PowerShell
1.4%
C
0.4%
