2020-08-20 18:53:56 +10:00
< p align = "center" >
2020-11-17 17:08:11 +11:00
< img align = "center" src = "img/icon.png" >
2020-08-20 18:53:56 +10:00
< / p >
2020-08-22 01:42:29 +10:00
< p align = "center" >
2020-11-12 15:58:28 +11:00
An in-game explorer and a suite of debugging tools for < a href = "https://docs.unity3d.com/Manual/IL2CPP.html" > IL2CPP< / a > and < b > Mono< / b > Unity games, to aid with modding development.
2020-11-12 15:59:34 +11:00
< / p >
< p align = "center" >
2020-08-22 01:42:29 +10:00
< a href = "../../releases/latest" >
2020-09-27 22:04:23 +10:00
< img src = "https://img.shields.io/github/release/sinai-dev/Explorer.svg" / >
2020-08-22 01:42:29 +10:00
< / a >
2020-09-27 22:04:23 +10:00
< img src = "https://img.shields.io/github/downloads/sinai-dev/Explorer/total.svg" / >
2020-08-22 01:42:29 +10:00
< / p >
2020-08-22 01:02:04 +10:00
2020-10-05 23:13:09 +11:00
- [Releases ](#releases )
2020-09-14 16:56:42 +10:00
- [Features ](#features )
2020-10-08 06:15:42 +11:00
- [How to install ](#how-to-install )
- [Mod Config ](#mod-config )
- [Mouse Control ](#mouse-control )
2020-09-14 16:56:42 +10:00
- [Building ](#building )
- [Credits ](#credits )
2020-10-05 23:13:09 +11:00
## Releases
2020-09-27 22:04:23 +10:00
2020-11-12 15:58:28 +11:00
| Mod Loader | IL2CPP | Mono |
2020-10-05 23:08:59 +11:00
| ----------- | ------ | ---- |
2020-11-19 01:41:11 +11:00
| [MelonLoader ](https://github.com/HerpDerpinstine/MelonLoader ) | ✔️ [link ](https://github.com/sinai-dev/UnityExplorer/releases/latest/download/UnityExplorer.MelonLoader.Il2Cpp.zip ) | ✔️ [link ](https://github.com/sinai-dev/UnityExplorer/releases/latest/download/UnityExplorer.MelonLoader.Mono.zip ) |
| [BepInEx ](https://github.com/BepInEx/BepInEx ) | ✔️ [link ](https://github.com/sinai-dev/UnityExplorer/releases/latest/download/UnityExplorer.BepInEx.Il2Cpp.zip ) | ✔️ [link ](https://github.com/sinai-dev/UnityExplorer/releases/latest/download/UnityExplorer.BepInEx.Mono.zip ) |
2020-09-14 16:56:42 +10:00
2020-10-08 06:15:42 +11:00
## Features
2020-11-17 17:08:11 +11:00
< p align = "center" >
< a href = "https://raw.githubusercontent.com/sinai-dev/UnityExplorer/master/img/preview.png" >
< img src = "img/preview.png" / >
< / a >
< / p >
2020-10-08 06:15:42 +11:00
* < b > Scene Explorer</ b > : Simple menu to traverse the Transform heirarchy of the scene.
* < b > GameObject Inspector</ b > : Various helpful tools to see and manipulate the GameObject, similar to what you can do in the Editor.
* < b > Reflection Inspector</ b > : Inspect Properties and Fields. Can also set primitive values and evaluate primitive methods.
* < b > Search</ b > : Search for UnityEngine.Objects with various filters, or use the helpers for static Instances and Classes.
* < b > C# Console</ b > : Interactive console for evaluating C# methods on the fly, with some basic helpers.
* < b > Inspect-under-mouse</ b > : Hover over an object with a collider and inspect it by clicking on it.
2020-08-07 22:24:42 +10:00
## How to install
2020-11-12 15:58:28 +11:00
### BepInEx
2020-08-07 22:24:42 +10:00
2020-11-12 15:58:28 +11:00
0. Install [BepInEx ](https://github.com/BepInEx/BepInEx ) for your game.
1. Download the UnityExplorer release for BepInEx IL2CPP or Mono above.
2020-12-31 18:34:26 +11:00
2. Take the `UnityExplorer.BIE.___.dll` file and put it in `[GameFolder]\BepInEx\plugins\`
2021-01-03 19:27:02 +11:00
3. 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.
2020-09-27 22:04:23 +10:00
2020-11-12 15:58:28 +11:00
### MelonLoader
2020-09-27 22:04:23 +10:00
2020-11-12 15:58:28 +11:00
0. Install [MelonLoader ](https://github.com/HerpDerpinstine/MelonLoader ) for your game.
1. Download the UnityExplorer release for MelonLoader IL2CPP or Mono above.
2021-01-03 19:27:02 +11:00
2. Take the contents of the release and put it in the `[GameFolder]\Mods\` folder. It should look like `[GameFolder]\Mods\UnityExplorer.ML.___.dll`
2020-08-07 22:24:42 +10:00
2020-10-08 06:15:42 +11:00
## Mod Config
2020-09-10 20:35:41 +10:00
2020-11-25 16:41:42 +11:00
You can access the settings via the "Options" page of the main menu, or directly from the config at `Mods\UnityExplorer\config.ini` (generated after first launch).
2020-09-10 20:36:24 +10:00
2020-11-12 15:58:28 +11:00
`Main Menu Toggle` (KeyCode)
* Default: `F7`
2020-09-10 20:35:41 +10:00
* See [this article ](https://docs.unity3d.com/ScriptReference/KeyCode.html ) for a full list of all accepted KeyCodes.
2020-11-12 16:30:41 +11:00
`Force Unlock Mouse` (bool)
2020-11-12 15:58:28 +11:00
* Default: `true`
* Forces the cursor to be unlocked and visible while the UnityExplorer menu is open, and prevents anything else taking control.
2020-09-10 20:35:41 +10:00
2020-11-12 15:58:28 +11:00
`Default Page Limit` (int)
* Default: `25`
2020-10-01 20:26:25 +10:00
* Sets the default items per page when viewing lists or search results.
2020-11-12 15:58:28 +11:00
* < b > Requires a restart to take effect</ b > , apart from Reflection Inspector tabs.
2020-08-30 16:49:44 +10:00
2020-11-12 15:58:28 +11:00
`Default Output Path` (string)
2020-11-23 21:16:29 +11:00
* Default: `Mods\UnityExplorer`
2020-10-11 22:57:46 +11:00
* Where output is generated to, by default (for Texture PNG saving, etc).
2020-11-17 02:56:20 +11:00
* Currently this is not actually used for anything, but it will be soon.
2020-08-30 16:49:44 +10:00
2020-11-12 15:58:28 +11:00
`Log Unity Debug` (bool)
* Default: `false`
* Listens for Unity `Debug.Log` messages and prints them to UnityExplorer's log.
2020-09-14 17:07:52 +10:00
2020-09-08 20:18:37 +10:00
## Building
2020-11-12 15:58:28 +11:00
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.
2020-09-08 20:18:37 +10:00
2020-11-23 20:28:22 +11:00
1. Install BepInEx or MelonLoader for your game.
2. Open the `src\UnityExplorer.csproj` file in a text editor.
3. For IL2CPP builds, make sure you set `BIECppGameFolder` (for BepInEx) and/or `MLCppGameFolder` (for MelonLoader) so the project can locate the necessary references.
4. Open the `src\UnityExplorer.sln` project.
2020-11-14 20:42:54 +11:00
5. Select `Solution 'UnityExplorer' (1 of 1 project)` in the Solution Explorer panel, and set the < b > Active config</ b > property to the version you want to build, then build it.
2020-09-27 22:04:23 +10:00
5. The DLLs are built to the `Release\` folder in the root of the repository.
2020-10-05 18:32:38 +11:00
6. If ILRepack fails or is missing, use the NuGet package manager to re-install `ILRepack.Lib.MSBuild.Task` , then re-build.
2020-09-08 20:18:37 +10:00
2020-08-08 00:02:32 +10:00
## Credits
Written by Sinai.
2020-11-17 17:56:48 +11:00
### Licensing
This project uses code from:
* (GPL) [ManlyMarco ](https://github.com/ManlyMarco )'s [Runtime Unity Editor ](https://github.com/ManlyMarco/RuntimeUnityEditor ), which I used for some aspects of the C# Console and Auto-Complete features. The snippets I used are indicated with a comment.
* (MIT) [denikson ](https://github.com/denikson ) (aka Horse)'s [mcs-unity ](https://github.com/denikson/mcs-unity ). I commented out the `SkipVisibilityExt` constructor since it was causing an exception with the Hook it attempted in IL2CPP.
* (Apache) [InGameCodeEditor ](https://assetstore.unity.com/packages/tools/gui/ingame-code-editor-144254 ) was used as the base for the syntax highlighting for UnityExplorer's C# console, although it has been heavily rewritten and optimized. Used classes are in the `UnityExplorer.CSConsole.Lexer` namespace.