Compare commits

...

16 Commits
v1.0.0 ... 1.1

Author SHA1 Message Date
ca172189be Update README.md 2020-08-08 22:42:39 +10:00
308966e664 Update README.md 2020-08-08 05:23:03 +10:00
0a08dbc495 Update README.md 2020-08-08 05:16:55 +10:00
13d54477a3 Update README.md 2020-08-08 03:58:12 +10:00
359f6e6f5c Update README.md 2020-08-08 03:50:51 +10:00
4f000c5494 Update README.md 2020-08-08 03:48:35 +10:00
e7866f56fe Update README.md 2020-08-08 03:33:40 +10:00
ab2770327e Update README.md 2020-08-08 03:19:00 +10:00
f568be2d3b Update README.md 2020-08-08 01:54:33 +10:00
3c374f3903 Update README.md 2020-08-08 01:42:04 +10:00
d5e22e8156 Update README.md 2020-08-08 01:40:24 +10:00
8bece453e3 1.0.0 finalize 2020-08-08 00:18:57 +10:00
692a721840 Update README.md 2020-08-08 00:02:32 +10:00
ef73cce92f Update README.md 2020-08-08 00:02:01 +10:00
2030b5309d move mcs.dll reference into lib folder 2020-08-07 23:58:43 +10:00
142a75bbbb Update README.md 2020-08-07 23:57:08 +10:00
5 changed files with 48 additions and 72 deletions

View File

@ -2,48 +2,48 @@
[![Version](https://img.shields.io/badge/MelonLoader-0.2.6-green.svg)]()
Universal Runtime Inspector/Explorer for Unity IL2CPP games.
Simple in-game explorer and debugging tool for IL2CPP Unity games, using MelonLoader.
## Features
* Scene exploration (traverse in the same way as the Unity Editor)
* Inspect GameObjects/Transforms and manipulate them
* Inspect any object with Reflection, set primitive values, etc
* REPL Console for executing on-the-fly code
* Scene hierarchy explorer
* Search loaded assets with filters
* Traverse and manipulate GameObjects
* Generic Reflection inspector
* REPL Console
* Inspect-under-mouse
## How to install
Requires [MelonLoader](https://github.com/HerpDerpinstine/MelonLoader) to be installed for your game.
1. Download <b>CppExplorer.zip</b> from [Releases](https://github.com/sinaioutlander/CppExplorer/releases).
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.
## 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.
## Images
Scene explorer, and inspection of a MonoBehaviour object:
[![](https://i.imgur.com/Yxizwcz.png)](https://i.imgur.com/Yxizwcz.png)
Search feature:
[![](https://i.imgur.com/F9ZfMvz.png)](https://i.imgur.com/F9ZfMvz.png)
REPL console:
[![](https://i.imgur.com/14Dbtf8.png)](https://i.imgur.com/14Dbtf8.png)
## Credits
Written by Sinai.
Credits to ManlyMarco for his [Runtime Unity Editor](https://github.com/ManlyMarco/RuntimeUnityEditor), which I used for the REPL Console and the "Find instances" snippet, and used the same MCS that he uses*.
Credits to 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 MCS* version.
<i>* note: I commented out the `SkipVisibilityExt` constructor since it was causing an exception for some reason.</i>
## How to install
This requires [MelonLoader](https://github.com/HerpDerpinstine/MelonLoader) to be installed for your game.
1. Download <b>CppExplorer.dll</b> from the Releases folder.
2. Put the file in your `MyGame/Mods/` folder.
## How to use
* Press F7 to show or hide the menu.
* Currently does <b>not</b> grant locked mouse or prevent clicking-through the menu, be careful of this.
* Simply browse through the scene, search for objects, etc, it's pretty self-explanatory.
If you have any specific questions about it you can contact me here, on NexusMods (Sinaioutlander), or on Discord (Sinai#4637, in MelonLoader discord).
## Images
Scene explorer, and inspection of a MonoBehaviour object.
[![](https://i.imgur.com/Yxizwcz.png)]()
Advanced search feature.
[![](https://i.imgur.com/F9ZfMvz.png)]()
REPL console.
[![](https://i.imgur.com/14Dbtf8.png)]()
<i>* note: I commented out the `SkipVisibilityExt` constructor in `mcs.dll` since it was causing an exception with the Hook it attempted.</i>

BIN
lib/mcs.dll Normal file

Binary file not shown.

View File

@ -4,15 +4,8 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
using System.IO;
using System.Reflection;
using MelonLoader;
using Harmony;
using UnhollowerBaseLib.Runtime;
using UnhollowerRuntimeLib;
using UnhollowerBaseLib;
using System.Runtime.CompilerServices;
using UnhollowerBaseLib.Attributes;
namespace Explorer
{
@ -20,9 +13,9 @@ namespace Explorer
{
// consts
public const string ID = "com.sinai.explorer";
public const string ID = "com.sinai.cppexplorer";
public const string NAME = "IL2CPP Runtime Explorer";
public const string VERSION = "0.91";
public const string VERSION = "1.0.0";
public const string AUTHOR = "Sinai";
// fields
@ -65,32 +58,16 @@ namespace Explorer
Instance = this;
LoadMCS();
new MainMenu();
new WindowManager();
var harmony = HarmonyInstance.Create(ID);
harmony.PatchAll();
//var harmony = HarmonyInstance.Create(ID);
//harmony.PatchAll();
// done init
ShowMenu = true;
}
private void LoadMCS()
{
var mcsPath = @"Mods\mcs.dll";
if (File.Exists(mcsPath))
{
Assembly.Load(File.ReadAllBytes(mcsPath));
MelonLogger.Log("Loaded mcs.dll");
}
else
{
MelonLogger.LogError("Could not find mcs.dll!");
}
}
public override void OnLevelWasLoaded(int level)
{
if (ScenePage.Instance != null)

View File

@ -44,10 +44,9 @@
<HintPath>..\..\..\..\..\Steam\steamapps\common\Hellpoint\MelonLoader\Managed\Il2CppSystem.Core.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="mcs, Version=1.0.0.0, Culture=neutral, processorArchitecture=AMD64">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Release\mcs.dll</HintPath>
<Private>False</Private>
<Reference Include="mcs">
<HintPath>..\lib\mcs.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="MelonLoader.ModHandler">
<HintPath>..\..\..\..\..\Steam\steamapps\common\Hellpoint\MelonLoader\MelonLoader.ModHandler.dll</HintPath>

View File

@ -10,12 +10,12 @@ using MelonLoader;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("CppExplorer")]
[assembly: AssemblyTitle(CppExplorer.NAME)]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("CppExplorer")]
[assembly: AssemblyCopyright("By Sinai")]
[assembly: AssemblyCompany(CppExplorer.AUTHOR)]
[assembly: AssemblyProduct(CppExplorer.NAME)]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]