UnityExplorer/README.md

71 lines
3.5 KiB
Markdown
Raw Normal View History

2020-08-22 01:02:04 +10:00
# CppExplorer [![Version](https://img.shields.io/badge/MelonLoader-0.2.6-green.svg)]()
2020-08-20 18:53:56 +10:00
<p align="center">
2020-08-23 03:00:19 +10:00
<img align="center" src="https://sinai-dev.github.io/images/thumbs/02.png">
2020-08-20 18:53:56 +10:00
</p>
2020-08-22 01:42:29 +10:00
<p align="center">
An in-game explorer and a suite of debugging tools for <a href="https://docs.unity3d.com/Manual/IL2CPP.html">IL2CPP</a> Unity games, using <a href="https://github.com/HerpDerpinstine/MelonLoader">MelonLoader</a>.<br><br>
2020-08-10 19:28:10 +10:00
2020-08-22 01:42:29 +10:00
<a href="../../releases/latest">
<img src="https://img.shields.io/github/release/sinai-dev/CppExplorer.svg" />
</a>
<img src="https://img.shields.io/github/downloads/sinai-dev/CppExplorer/total.svg" />
</p>
2020-08-22 01:02:04 +10:00
### Known issue
Some games are experiencing `MissingMethodException`s or exceptions about failed unstripping, which prevent the CppExplorer menu from showing properly or at all. This is a bug with [Il2CppAssemblyUnhollower](https://github.com/knah/Il2CppAssemblyUnhollower) and there isn't much I can do about it myself.
If you're familiar with C# and Unity, one possibility for now is making a fork of this repo and manually fixing all the broken methods to ones which aren't broken (if possible). There may be another overload of the same method which wasn't stripped or was unstripped successfully, which you can use instead.
2020-08-07 22:24:42 +10:00
2020-08-07 23:51:37 +10:00
## Features
2020-08-08 03:50:51 +10:00
* Scene hierarchy explorer
2020-08-08 03:58:12 +10:00
* Search loaded assets with filters
2020-08-08 03:48:35 +10:00
* Traverse and manipulate GameObjects
* Generic Reflection inspector
2020-08-13 23:42:31 +10:00
* C# REPL Console
2020-08-08 03:48:35 +10:00
* Inspect-under-mouse
2020-08-07 23:51:37 +10:00
2020-08-07 22:24:42 +10:00
## How to install
2020-08-08 03:48:35 +10:00
Requires [MelonLoader](https://github.com/HerpDerpinstine/MelonLoader) to be installed for your game.
2020-08-07 22:24:42 +10:00
2020-08-08 00:02:01 +10:00
1. Download <b>CppExplorer.zip</b> from [Releases](https://github.com/sinaioutlander/CppExplorer/releases).
2020-08-08 05:16:55 +10:00
2. Unzip the file into the `Mods` folder in your game's installation directory, created by MelonLoader.
3. Make sure it's not in a sub-folder, `CppExplorer.dll` and `mcs.dll` should be directly in the `Mods\` folder.
2020-08-07 22:24:42 +10:00
## How to use
* Press F7 to show or hide the menu.
* Simply browse through the scene, search for objects, etc, it's pretty self-explanatory.
### Mouse Control
2020-08-14 17:51:09 +10:00
CppExplorer can force the mouse to be visible and unlocked when the menu is open, if you have enabled "Force Unlock Mouse" (Left-Alt toggle). However, you may also want to prevent the mouse clicking-through onto the game behind CppExplorer, this is possible but it requires specific patches for that game.
2020-08-14 17:51:09 +10:00
* For VRChat, use [VRCExplorerMouseControl](https://github.com/sinaioutlander/VRCExplorerMouseControl)
* You can create your own mini-plugin using one of the two plugins above as an example. Usually only 1 or 2 simple Harmony patches are needed to fix the problem (if you want to submit that here, feel free to make a PR to this Readme).
2020-08-14 17:51:09 +10:00
2020-08-07 22:45:32 +10:00
## Images
2020-08-24 01:50:03 +10:00
<b>Scene Explorer, GameObject Inspector, and Reflection Inspectors:</b>
2020-08-07 22:45:32 +10:00
2020-08-24 01:50:03 +10:00
[![](https://i.imgur.com/n8bkxVW.png)](https://i.imgur.com/n8bkxVW.png)
2020-08-07 22:45:32 +10:00
2020-08-24 01:50:03 +10:00
<b>Object Search:</b>
2020-08-07 22:45:32 +10:00
2020-08-24 01:53:59 +10:00
[![](https://i.imgur.com/lK2RthM.png)](https://i.imgur.com/lK2RthM.png)
2020-08-07 22:45:32 +10:00
2020-08-24 01:50:03 +10:00
<b>C# REPL console:</b>
2020-08-07 22:45:32 +10:00
2020-08-24 01:50:03 +10:00
[![](https://i.imgur.com/gYTor7C.png)](https://i.imgur.com/gYTor7C.png)
2020-08-08 00:02:32 +10:00
## Credits
Written by Sinai.
2020-08-09 21:50:55 +10:00
Thanks to:
* [ManlyMarco](https://github.com/ManlyMarco) for their [Runtime Unity Editor](https://github.com/ManlyMarco/RuntimeUnityEditor), which I used for the REPL Console and the "Find instances" snippet, and the UI style.
* [denikson](https://github.com/denikson) for [mcs-unity](https://github.com/denikson/mcs-unity). I commented out the `SkipVisibilityExt` constructor in `mcs.dll` since it was causing an exception with the Hook it attempted.