Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on May 9, 2023. It is now read-only.

An in-game UI for exploring, debugging and modifying IL2CPP and Mono Unity games.

License

NotificationsYou must be signed in to change notification settings

sinai-dev/UnityExplorer

Repository files navigation

🔍 An in-game UI for exploring, debugging and modifying Unity games.

✔️ Supports most Unity versions from 5.2 to 2021+ (IL2CPP and Mono).

✨ Powered byUniverseLib

Releases

⚡ Thunderstore releases:BepInEx Mono |BepInEx IL2CPP |MelonLoader IL2CPP

Release schedule

Releases will be posted at most once per week, generally on weekends.

Nightly builds can be foundhere.

BepInEx

ReleaseIL2CPPMono
BIE 6.Xlinklink
BIE 6.X (CoreCLR)link
BIE 5.X✖️ n/alink
  1. Unzip the release file into a folder
  2. Take theplugins/sinai-dev-UnityExplorer folder and place it inBepInEx/plugins/

Note: BepInEx 6 is obtainable viabuilds.bepinex.dev

MelonLoader

ReleaseIL2CPPMono
ML 0.5linklink
ML 0.6link✖️
  1. Unzip the release file into a folder
  2. Copy the DLL inside theMods folder into your MelonLoaderMods folder
  3. Copy all of the DLLs inside theUserLibs folder into your MelonLoaderUserLibs folder

Standalone

IL2CPPMono
linklink

The standalone release can be used with any injector or loader of your choice, but it requires you to load the dependencies manually.

  1. Ensure the required libs are loaded - UniverseLib, HarmonyX and MonoMod. Take them from theUnityExplorer.Editor release if you need them.
  2. For IL2CPP, load Il2CppAssemblyUnhollower and start anIl2CppAssemblyUnhollower runtime
  3. Load the UnityExplorer DLL
  4. Create an instance of Unity Explorer withUnityExplorer.ExplorerStandalone.CreateInstance();
  5. Optionally subscribe to theExplorerStandalone.OnLog event to handle logging if you wish

Unity Editor

  1. Download theUnityExplorer.Editor release.
  2. Install the package, either by using the Package Manager and importing thepackage.json file, or by manually dragging the folder into yourAssets folder.
  3. Drag theRuntime/UnityExplorer prefab into your scene, or create a GameObject and add theExplorer Editor Behaviour script to it.

Common issues and solutions

Although UnityExplorer should work out of the box for most Unity games, in some cases you may need to tweak the settings for it to work properly.

To adjust the settings, open the config file:

  • BepInEx:BepInEx\config\com.sinai.unityexplorer.cfg
  • MelonLoader:UserData\MelonPreferences.cfg
  • Standalone:sinai-dev-UnityExplorer\config.cfg

Try adjusting the following settings and see if it fixes your issues:

  • Startup_Delay_Time - increase to 5-10 seconds (or more as needed), can fix issues with UnityExplorer being destroyed or corrupted during startup.
  • Disable_EventSystem_Override - if input is not working properly, try setting this totrue.

If these fixes do not work, please create an issue in this repo and I'll do my best to look into it.

Features

Inspector API

If you want to inspect an object or Type from outside the C# console, use theInspectorManager class:

To inspect an object:

UnityExplorer.InspectorManager.Inspect(theObject);

To inspect a Type:

UnityExplorer.InspectorManager.Inspect(typeof(SomeClass));

Object Explorer

  • Use theScene Explorer tab to traverse the active scenes, as well as the DontDestroyOnLoad and HideAndDontSave objects.
    • The "HideAndDontSave" scene contains objects with that flag, as well as Assets and Resources which are not in any scene but behave the same way.
    • You can use the Scene Loader to easily load any of the scenes in the build (may not work for Unity 5.X games)
  • Use theObject Search tab to search for Unity objects (including GameObjects, Components, etc), C# Singletons or Static Classes.
    • Use the UnityObject search to look for any objects which derive fromUnityEngine.Object, with optional filters
    • The singleton search will look for any classes with a typical "Instance" field, and check it for a current value. This may cause unexpected behaviour in some IL2CPP games as we cannot distinguish between true properties and field-properties, so some property accessors will be invoked.

Inspector

The inspector is used to see detailed information on objects of any type and manipulate their values, as well as to inspect C# Classes with static reflection.

  • TheGameObject Inspector (tab prefix[G]) is used to inspect aGameObject, and to see and manipulate its Transform and Components.
    • You can edit any of the input fields in the inspector (excluding readonly fields) and pressEnter to apply your changes. You can also do this to the GameObject path as a way to change the GameObject's parent. Press theEscape key to cancel your edits.
    • note: When inspecting a GameObject with a Canvas, the transform controls may be overridden by the RectTransform anchors.
  • TheReflection Inspectors (tab prefix[R] and[S]) are used for everything else
    • Automatic updating is not enabled by default, and you must press Apply for any changes you make to take effect.
    • Press the button to expand certain values such as strings, enums, lists, dictionaries, some structs, etc
    • Use the filters at the top to quickly find the members you are looking for
    • ForTexture2D,Image,Sprite andMaterial objects, there is aView Texture button at the top of the inspector which lets you view the Texture(s) and save them as a PNG file.
    • ForAudioClip objects there is aShow Player button which opens an audio player widget. For clips which are loaded asDecompressOnLoad, there is also a button to save them to a.wav file.

C# Console

  • The C# Console uses theMono.CSharp.Evaluator to define temporary classes or run immediate REPL code.
  • You can execute a script automatically on startup by naming itstartup.cs and placing it in thesinai-dev-UnityExplorer\Scripts\ folder (this folder will be created where you placed the DLL file).
  • See the "Help" dropdown in the C# console menu for more detailed information.

Hook Manager

  • The Hooks panel allows you to hook methods at the click of a button for debugging purposes.
    • Simply enter any class and hook the methods you want from the menu.
    • You can edit the source code of the generated hook with the "Edit Hook Source" button. Accepted method names arePrefix (which can returnbool orvoid),Postfix,Finalizer (which can returnException orvoid), andTranspiler (which must returnIEnumerable<HarmonyLib.CodeInstruction>). You can define multiple patches if you wish.

Mouse-Inspect

  • The "Mouse Inspect" dropdown in the "Inspector" panel allows you to inspect objects under the mouse.
    • World: uses Physics.Raycast to look for Colliders
    • UI: uses GraphicRaycasters to find UI objects

Freecam

  • UnityExplorer provides a basic Free Camera which you can control with your keyboard and mouse.
  • Unlike all other features of UnityExplorer, you can still use Freecam while UnityExplorer's menu is hidden.
  • Supports using the game's main Camera or a separate custom Camera.
  • See the Freecam panel for further instructions and details.

Clipboard

  • The "Clipboard" panel allows you to see your current paste value, or clear it (resets it tonull)
    • Can copy the value from any member in a Reflection Inspector, Enumerable or Dictionary, and from the target of any Inspector tab
    • Can paste values onto any member in a Reflection Inspector
    • Non-parsable arguments in Method/Property Evaluators allow pasting values
    • The C# Console has helper methodsCopy(obj) andPaste() for accessing the Clipboard

Settings

  • You can change the settings via the "Options" tab of the menu, or directly from the config file.
    • BepInEx:BepInEx\config\com.sinai.unityexplorer.cfg
    • MelonLoader:UserData\MelonPreferences.cfg
    • Standalone{DLL_location}\sinai-dev-UnityExplorer\config.cfg

Building

  1. Run thebuild.ps1 powershell script to build UnityExplorer. Releases are found in theRelease folder.

Building individual configurations from your IDE is fine, though note that the intial build process builds intoRelease/<version>/... instead of the subfolders that the powershell script uses. Batch building is not currently supported with the project.

Acknowledgments

Disclaimer

UnityExplorer is in no way associated with Unity Technologies. "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere.

About

An in-game UI for exploring, debugging and modifying IL2CPP and Mono Unity games.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project


    [8]ページ先頭

    ©2009-2025 Movatter.jp