GithubHelp home page GithubHelp logo

manlymarco / runtimeunityeditor Goto Github PK

View Code? Open in Web Editor NEW
704.0 17.0 98.0 7.09 MB

In-game inspector and debugging tools for applications made with Unity3D game engine

License: GNU General Public License v3.0

C# 99.69% PowerShell 0.31%
bepinex plugin game-development debugging-tool modding-tools

runtimeunityeditor's Introduction

Runtime Unity Editor / Debugging Tools

In-game inspector, editor and interactive console for applications made with Unity3D game engine. It's designed for debugging and modding Unity games, but can also be used as a universal trainer. Runs under BepInEx5 and UMM.

Features

  • Works on most games made in Unity 4.x or newer that use the mono runtime (IL2CPP is not supported at the moment)
  • Minimal impact on the game - no GameObjects or Components are spawned (outside of the plugin component loaded by the mod loader) and no hooks are used (except if requested for profiler)
  • GameObject and component browser
  • Object inspector (allows modifying values of objects in real time) with clipboard
  • REPL C# console with autostart scripts
  • Simple Profiler
  • Object serialization/dumping
  • dnSpy integration (navigate to member in dnSpy)
  • Mouse inspect (find objects or UI elements by clicking with mouse)
  • Gizmos (Transform origin, Renderer bounds, Collider area, etc.)
  • All parts are integrated together (e.g. REPL console can access inspected object, inspector can focus objects on GameObject list, etc.)
  • Right click on most objects to bring up a context menu with more options
  • and many other...

preview

How to use (BepInEx)

  1. Install BepInEx v4.x or v5.x if you don't have it already. You can download it here.
  2. Download the latest BepInEx build (RuntimeUnityEditor_BepInEx5_vX.X.zip) from the Releases page. Make sure to get the correct version for your BepInEx.
  3. Extract the BepInEx folder from the archive directly into your game directory (you should already have a BepInEx folder there from previous step). Replace files if asked.
  4. To turn on press the F12 key when in-game. A window should appear on top of the game. If it doesn't appear, check logs for errors.

Note: If the plugin fails to load under BepInEx 4 with a type load exception, move RuntimeUnityEditor.Core.dll to BepInEx/core folder.

How to use (Unity Mod Manager)

  1. Install Unity Mod Manager if you don't have it already. You can download it here. Select your game from the the dropdown list and then click the Install button.
  2. Download the latest UMM build (RuntimeUnityEditor_UMM_vX.X.zip) from the Releases page.
  3. Goto the Mods tab in Unity Mod Manager and drag the RuntimeUnityEditor zip file into the Unity Mod Manager GUI at the bottom where it says drop zip file here.
  4. To turn on press the F12 key when in-game. A window should appear on top of the game. If it doesn't appear, check logs for errors.

How to build

  1. Get Visual Studio 2019 (or later).
  2. Clone the repository recursively (git clone --recursive https://github.com/ManlyMarco/RuntimeUnityEditor, VS 2022 can do it too).
  3. Open the solution in Visual Studio and hit Build All.

Notes:

  • If you already have the repository cloned or want to update the mcs submodule you need to run git submodule update --init --recursive on your local repository (if you have VS 2022 you can do it from the source control tab).
  • An old version of UnityEngine.dll (pre-2017) is used for compatibility with all Unity versions 4.x and above, because the new UnityEngine.dll in 2017+ forwards all of the split types into their new respective dll files.

You can support development of my plugins through my Patreon page: https://www.patreon.com/ManlyMarco

runtimeunityeditor's People

Contributors

amacro avatar linqtoexception avatar manlymarco avatar mantas-2155x avatar mricher-git avatar takahiro0327 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

runtimeunityeditor's Issues

ArgumentException: Type UnityEngine.Rect is not supported by the config system

When running the just released version 4 with the game Stacklands and BepInEx 5.4.21 (the latest as far as I can see?) I get the error mentioned in the title blocking most of the useful modules. Here's a more detailed log:

[Message:   BepInEx] BepInEx 5.4.21.0 - Stacklands (04.05.2022 01:33:52)
[Info   :   BepInEx] Running under Unity v2020.3.6.3378102
[Info   :   BepInEx] CLR runtime version: 4.0.30319.17020
[Info   :   BepInEx] Supports SRE: False
[Info   :   BepInEx] System platform: Bits64, Windows
[Message:   BepInEx] Preloader started
[Info   :   BepInEx] Loaded 1 patcher method from [BepInEx.Preloader 5.4.21.0]
[Info   :   BepInEx] 1 patcher plugin loaded
[Info   :   BepInEx] Patching [UnityEngine.CoreModule] with [BepInEx.Chainloader]
[Message:   BepInEx] Preloader finished
[Message:   BepInEx] Chainloader ready
[Message:   BepInEx] Chainloader started
[Info   :   BepInEx] 1 plugins to load
[Info   :   BepInEx] Loading [Runtime Unity Editor 4.0.0.1]
[Message:   BepInEx] Chainloader startup complete
[Info   : Unity Log] Odin Serializer ArchitectureInfo initialization with defaults (all unaligned read/writes disabled).
[Info   : Unity Log] Odin Serializer detected whitelisted runtime platform WindowsPlayer and memory read test succeeded; enabling all unaligned memory read/writes.
[Warning:Runtime Unity Editor] Vectrosity.dll is not available, drawing gizmos will be disabled
[Warning:Runtime Unity Editor] Failed to initialize ReplWindow - System.ArgumentException: Type UnityEngine.Rect is not supported by the config system. Supported types: String, Boolean, Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Single, Double, Decimal, Enum, Color, Vector2, Vector3, Vector4, Quaternion
  at BepInEx.Configuration.ConfigFile.Bind[T] (BepInEx.Configuration.ConfigDefinition configDefinition, T defaultValue, BepInEx.Configuration.ConfigDescription configDescription) [0x0005d] in <fe49c90fe8e24102b42489c11910c71c>:0 
  at BepInEx.Configuration.ConfigFile.Bind[T] (System.String section, System.String key, T defaultValue, System.String description) [0x00017] in <fe49c90fe8e24102b42489c11910c71c>:0 
  at RuntimeUnityEditor.Bepin5.RuntimeUnityEditor5+Bep5InitSettings.RegisterSetting[T] (System.String category, System.String name, T defaultValue, System.String description, System.Action`1[T] onValueUpdated) [0x0001a] in <475749b1241b4432b549113e0bbf08ea>:0 
  at RuntimeUnityEditor.Core.Window`1[T].AfterInitialized (RuntimeUnityEditor.Core.Utils.Abstractions.InitSettings initSettings) [0x00031] in <eec145b60b9a4c2d88dd2224695b82aa>:0 
  at RuntimeUnityEditor.Core.FeatureBase`1[T].RuntimeUnityEditor.Core.IFeature.OnInitialize (RuntimeUnityEditor.Core.Utils.Abstractions.InitSettings initSettings) [0x00019] in <eec145b60b9a4c2d88dd2224695b82aa>:0 
  at RuntimeUnityEditor.Core.RuntimeUnityEditorCore.AddFeatureInt (RuntimeUnityEditor.Core.IFeature feature) [0x00000] in <eec145b60b9a4c2d88dd2224695b82aa>:0 
  at RuntimeUnityEditor.Core.RuntimeUnityEditorCore..ctor (RuntimeUnityEditor.Core.Utils.Abstractions.InitSettings initSettings) [0x000ce] in <eec145b60b9a4c2d88dd2224695b82aa>:0 

Version 3 works just fine.

Obsolite debug feature causing an error?

I didn't want to just pr this since it could be legitimately useful and I'm too bad at GUI to solve it without just removing it, but from what I can tell line 454 in Inspector.cs:
GUILayout.TextArea(ex.Message, GUI.skin.label, GUILayout.ExpandWidth(true));
Is causing this error: (picture seems more practical)
image
When trying to scroll down past the limit when searching in the inspector. This seems like a debug tool that clearly doesn't work so if it's not needed anymore and the fix is to just remove the line it should be pretty quick. Honestly don't know if this matters in the slightest but I've been using this tool for a while and felt curious so now you know too I guess.

Unhook the mouse?

I'm using this on Yandere Simulator, a Unity game. However, the game locks the mouse in the middle of the screen and hides it. So how do I use the F12 GUI that pops up?

GUI Error: You are pushing more GUIClips than you are popping.

Hello! Just stumbled upon your little tool. Looks promising! However my game (Alien Marauder) crashes when enabling the overlay (by pressing f12).

The stacktrace:

[Error  : Unity Log] GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced.
[Error  : Unity Log] ArgumentException: GUILayout: Mismatched LayoutGroup.repaint
Stack trace:
UnityEngine.GUILayoutUtility.BeginLayoutGroup (UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options, System.Type layoutType) (at <22f4964958684322850dc0d6e1fb8a07>:0)
UnityEngine.GUILayout.BeginHorizontal (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at <22f4964958684322850dc0d6e1fb8a07>:0)
UnityEngine.GUILayout.BeginHorizontal (UnityEngine.GUILayoutOption[] options) (at <22f4964958684322850dc0d6e1fb8a07>:0)
RuntimeUnityEditor.Core.ObjectTree.ObjectTreeViewer.DisplayObjectTreeHelper (UnityEngine.GameObject go, System.Int32 indent, System.Int32& currentCount) (at <99c1546bc79d4347bde8599da486cdaa>:0)
RuntimeUnityEditor.Core.ObjectTree.ObjectTreeViewer.DisplayObjectTree () (at <99c1546bc79d4347bde8599da486cdaa>:0)
RuntimeUnityEditor.Core.ObjectTree.ObjectTreeViewer.WindowFunc (System.Int32 id) (at <99c1546bc79d4347bde8599da486cdaa>:0)
UnityEngine.GUILayout+LayoutedWindow.DoWindow (System.Int32 windowID) (at <22f4964958684322850dc0d6e1fb8a07>:0)
UnityEngine.GUI.CallWindowDelegate (UnityEngine.GUI+WindowFunction func, System.Int32 id, System.Int32 instanceID, UnityEngine.GUISkin _skin, System.Int32 forceRect, System.Single width, System.Single height, UnityEngine.GUIStyle style) (at <22f4964958684322850dc0d6e1fb8a07>:0)

image

Menu Not Showing - Life is Strange: Before the Storm (Unity 5.5.3f1)

Hello there, how do I make this plugin work with the game in the title, I think Bepin loads it but when pressing f12 no menu shows, what can I do to make it show? I'm using steam version and I've changed the screenshot keybind still no luck.

"[Message: BepInEx] Chainloader ready
[Message: BepInEx] Chainloader started
[Info : BepInEx] 1 / 1 plugins to load
[Info : BepInEx] Loading [Runtime Unity Editor 1.5]
[Message: BepInEx] Chainloader startup complete"

Why don't add a hotkey to close the panels?

Firstly thank you for this plugin which provides great convenice to me.
But when I use it, it was once turned on cannot be turned off any more. It blocks the items of my game. Why isn't there a hotkey or button to close it?
Maybe there is such thing, please tell me if its true.

Wireframe - Should Exclude This Library

While wireframe works, it applies to this library's windows also and hence makes it unreadable/usable. Any quick way to set an exclusion on certain objects?

Support for Unity Mod Manager

Hi, I have forked the project and added support for UnityModManager, using RuntimeUnityEditor.Bepin5 as a reference and created a RuntimeUnityEditor.UMM project with the solution.

Would you be willing to accept a PR and officially add UMM support for this project?

Added Telnet Terminal

Marco, here's a project solution that has all dependencies and actually build out of the gate. I've added a TCP server to the library that you can connect to at 127.0.0.1:1755. Ultimately, I plan to tie this terminal to the C# REPL. But here is a start. You likely know Unity more than I so please expand on it if it suits your idea.

v.01 RuntimeUnityEditor-w-Telnet-Console.zip

Does not work with VR Games

as the title says it does not support VR Games. no menu popping up. Plugin is loaded properly tho without errors.

Suggestion: Block Rewired input during typing

It's pretty annoying when typing in the REPL and suddenly all kinds of things are happening in the background because the game also responds to the inputs. Unfortunately, it doesn't seem like there is a general way to prevent this in Unity but at least it should be possible to do for games using Rewired (any maybe also other input systems).

I'd be up to implement something like this but I wanted to ask first if that sounds like a good idea and it's something you would accept.

The only issue I can see is that it might not be that easy to determine when a user is focused in a text field so maybe an alternative in that case would be a button/toggle to disable all game input.

Materials being duplicated

The Renderer.materials property duplicates the material and calling it makes the material local to that Renderer. This is true of course for all derived types such as MeshRenderer. Every time you opne a Renderer/MeshRenderer component in the inspector you duplicate and make that material local to that renderer, and changes to sharedMaterial no longer affect others.

Expected behaviour is that the inspector should peek but not affect the runtime environment (unless you want it to ๐Ÿ˜„)

Possible work around is to just return sharedMaterial in place of material in the inspector to prevent the cloning and making it unique.

GUI text not rendering on wine (solution included)

Opening RUE in a windows game running on wine causes the taskbar to open, but no text is rendered, and buttons shrink to their minimum size.

According to my experiments this is because the font for the default unity gui skin is Arial.ttf, which by default is not installed in a wineprefix.
Installing arial via winetricks solved the issue.

I thought I'd report it here in case anyone else is stupidbrave enough to develop mods on linux.

System.IO.FileNotFoundException: Could not load file or assembly 'RuntimeUnityEditor.Core'

When adding RUE 5.2.1 to a game with Unity Mod Manager, the mod does not load.

The issue can be resolved by copying 'RuntimeUnityEditor.Core.dll' to the '<Game>_Data\Managed' folder, however, this is not the expected behaviour (IMHO). The assembly load fine from the '\Mods\RuntimeUnityEditor' folder that UMM creates without manual intervention.

Log

[Manager] Starting.
[Manager] Parsing mods.
[Manager] Reading file 'C:\Program Files (x86)\Steam\steamapps\common\Railroader\Mods\RuntimeUnityEditor\Info.json'.
[Manager] Sorting mods.
[Manager] Loading mods.
[RuntimeUnityEditor] Version '5.2.1.0'. Loading.
[RuntimeUnityEditor] [Error] Error loading file 'C:\Program Files (x86)\Steam\steamapps\common\Railroader\Mods\RuntimeUnityEditor\RuntimeUnityEditor.UMM.dll'.
[RuntimeUnityEditor] [Exception] ReflectionTypeLoadException - Exception of type 'System.Reflection.ReflectionTypeLoadException' was thrown.
Could not load file or assembly 'RuntimeUnityEditor.Core, Version=5.2.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
Could not load file or assembly 'RuntimeUnityEditor.Core, Version=5.2.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
System.Reflection.ReflectionTypeLoadException: Exception of type 'System.Reflection.ReflectionTypeLoadException' was thrown.
Could not load file or assembly 'RuntimeUnityEditor.Core, Version=5.2.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
Could not load file or assembly 'RuntimeUnityEditor.Core, Version=5.2.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
  at (wrapper managed-to-native) System.Reflection.Assembly.GetTypes(System.Reflection.Assembly,bool)
  at System.Reflection.Assembly.GetTypes () [0x00000] in <7e05db41a20b45108859fa03b97088d4>:0 
  at UnityModManagerNet.UnityModManager+ModEntry.Load () [0x00593] in <41afed0fd6f44664b4330828e6d4dd7c>:0 
System.IO.FileNotFoundException: Could not load file or assembly 'RuntimeUnityEditor.Core, Version=5.2.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
File name: 'RuntimeUnityEditor.Core, Version=5.2.1.0, Culture=neutral, PublicKeyToken=null'
System.IO.FileNotFoundException: Could not load file or assembly 'RuntimeUnityEditor.Core, Version=5.2.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
File name: 'RuntimeUnityEditor.Core, Version=5.2.1.0, Culture=neutral, PublicKeyToken=null'
[RuntimeUnityEditor] Loading time 0.09 s.
[Manager] FINISH. SUCCESSFUL LOADED 0/1 MODS.

Clicking Log button - Start_shell Exception

Clicking the Log button in Object Browser produces the following exception:

BepInEx Log:
[Error : Unity Log] Win32Exception: The system cannot find the file specified.

Stack trace:
System.Diagnostics.Process.Start_shell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)
System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)
System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo)
System.Diagnostics.Process.Start (System.String fileName)
RuntimeUnityEditor.Core.ObjectTree.ObjectTreeViewer.DisplayControls ()
RuntimeUnityEditor.Core.ObjectTree.ObjectTreeViewer.WindowFunc (Int32 id)
UnityEngine.GUILayout+LayoutedWindow.DoWindow (Int32 windowID)
UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, Int32 instanceID, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style)

Game Log file:
[Debug:Runtime Unity Editor] [REPL] Found 286 public namespaces
Uploading Crash Report
Win32Exception: The system cannot find the file specified.

at System.Diagnostics.Process.Start_shell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in :0
at System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process) [0x00000] in :0
at System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo) [0x00000] in :0
at System.Diagnostics.Process.Start (System.String fileName) [0x00000] in :0
at RuntimeUnityEditor.Core.ObjectTree.ObjectTreeViewer.DisplayControls () [0x00000] in :0
at RuntimeUnityEditor.Core.ObjectTree.ObjectTreeViewer.WindowFunc (Int32 id) [0x00000] in :0
at UnityEngine.GUILayout+LayoutedWindow.DoWindow (Int32 windowID) [0x00000] in :0
at UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, Int32 instanceID, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style) [0x00000] in :0

(Filename: Line: -1)

Not working

Hello I have tested this on a game called Torque Drift and I'm pretty sure that it is on the Unity engine but it didn't work I have copied all of the bepinex files and made a plugins folder. How can I fix this?
Sorry to bother.

Thanks.

Very low fps on Subnautica 2.0

When runtime editor shows on screen, the fps goes down to single digit. This does not happen on a popular fork of RuntimeEditor for subnautica. Subnautica the game has just been updated in a way that breaks most mods also so this fork does not work on latest version of subnautica either.

.Net Remoting added / external companion app

.Net Remoting server added in fork https://github.com/wh010ne/RuntimeUnityEditor

Includes test client. Passes game objects back and forth with edits successfully. End user/developer would need to customize for their own game/Assembly-CSharp.dll but it works perfectly. Some games (and some Unity objects) still be the [Serializable] attribute, working on Harmony patch for that. I have a WCF version too, but Remoting seems to work better and more reliably given the .Net version limitations.

Note: For now, I use 'Train Valley 2' for testing my fork, until I find something smaller. All code is commented to see where end user/developer should replace with their code.

UI / font size?

Hi, the UI size or the font size is small for me.
Can I change it?

Incompatible with games not using UnityEngine.Input

Semi-relevant stack dump:

InvalidOperationException: You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.
  at (wrapper managed-to-native) UnityEngine.Input.GetKeyDownInt(UnityEngine.KeyCode)
  at UnityEngine.Input.GetKeyDown (UnityEngine.KeyCode key) [0x00001] in <a107d7e36e0048b18d7edb390dccd66c>:0
  at RuntimeUnityEditor.Core.RuntimeUnityEditorCore.Update () [0x00006] in <903752223476428390903c751060257d>:0
  at RuntimeUnityEditor.Bepin5.RuntimeUnityEditor5.Update () [0x00005] in <e01f6b065baf41b397d75560545aa04d>:0

Unfortunately, fixing this would require some spaghetti to detect which input system is in use, and then select appropriately.
Which game is irrelevant, since this affects every game using the "new" input event system.

Implement Scene Hierarchy

A simple hierarchy tree. You can start walking of scene.RootObjects, they preserve hierarchy, and then populate with the rest of the objects loaded dynamically.

Saving made changes in RuntimeUnityEditor.

Good afternoon, ManlyMarco!

We are modifying an already prepared project, there is no access to the sources.
Specifically, we are engaged in translation of already released games.

Is it possible to save the changes made in RuntimeUnityEditor so that you can open and continue translation?

And how can we apply them automatically when launching a project that used the RuntimeUnityEditor?

Thank you.

ReflectionTypeLoadException: The classes in the module cannot be loaded.

I'm having an issue about injecting RuntimeUnityEditor for Enter The Gungeon, infinitely printing this error below each frame:

[Error  : Unity Log] ReflectionTypeLoadException: The classes in the module cannot be loaded.
Stack trace:
System.Reflection.Assembly.GetTypes ()
FullInspector.Internal.fiRuntimeReflectionUtility.<GetAssemblyInstances`1>m__0[fiSettingsProcessor] (System.Reflection.Assembly assembly)
System.Linq.Enumerable+<CreateSelectManyIterator>c__Iterator14`3[System.Reflection.Assembly,System.Type,<>__AnonType0`2[System.Reflection.Assembly,System.Type]].MoveNext ()
System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[<>__AnonType0`2[System.Reflection.Assembly,System.Type]].MoveNext ()
System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[<>__AnonType0`2[System.Reflection.Assembly,System.Type]].MoveNext ()
System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[<>__AnonType0`2[System.Reflection.Assembly,System.Type]].MoveNext ()
System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[<>__AnonType0`2[System.Reflection.Assembly,System.Type]].MoveNext ()
System.Linq.Enumerable+<CreateWhereIterator>c__Iterator1D`1[<>__AnonType0`2[System.Reflection.Assembly,System.Type]].MoveNext ()
System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[<>__AnonType0`2[System.Reflection.Assembly,System.Type],FullInspector.fiSettingsProcessor].MoveNext ()
FullInspector.fiSettings..cctor ()
Rethrow as TypeInitializationException: An exception was thrown by the type initializer for FullInspector.fiSettings
FullInspector.FullSerializerSerializer.EmitFailWarning (fsResult result)
FullInspector.FullSerializerSerializer.Deserialize (System.Reflection.MemberInfo storageType, System.String serializedState, ISerializationOperator serializationOperator)
FullInspector.SerializationHelpers.DeserializeFromContent[FullSerializerSerializer] (System.Type storageType, System.String content)
FullInspector.SerializationHelpers.DeserializeFromContent[GameOptions,FullSerializerSerializer] (System.String content)
SaveManager.Load[GameOptions] (.SaveType saveType, .GameOptions& obj, Boolean allowDecrypted, UInt32 expectedVersion, System.Func`3 versionUpdater, Nullable`1 overrideSaveSlot)
GameOptions.Load ()
GameManager.get_Options ()
BraveCameraUtility.MaintainCameraAspect (UnityEngine.Camera c)
dfGUICamera.Awake ()

When I remove the .dlls (RuntimeUnityEditor.Core and RuntimeUnityEditor.Bepin5), the game works perfectly again.

Tested with:

  • RuntimeUnityEditor v1.8 and v1.10
  • BepInEx 5.0.0.0 RC and v5.0
  • Latest version of Enter The Gungeon

I want to point out that the plugin works fine on Overcooked and Subnautica.
Is it a known issue? I attempted to build the .dlls under .Net Framework 3.5 for testing purposes but no success.

Improve search speed by offering search option without component search

The search can be a little slow, especially when just trying to hide/show RUE for a second and the search runs again.

Suggest changing buttons from to:
Search:

Names will be quicker if you know what you're looking for.

Already done, PR inbound. Also removed redundant string check in SearchComponent giving a performance boost regardless of the option.

Just a matter of whether you prefer the default <enter/kb enter> to activate name or component based search.

e.g. test:
[RuntimeUnityEditor] Searching for [Map] (Just name)
[RuntimeUnityEditor] Search finished in 166ms
[RuntimeUnityEditor] Searching components for [Map]
[RuntimeUnityEditor] Search finished in 724ms
[RuntimeUnityEditor] Deep searching for [Map], this can take a while...
[RuntimeUnityEditor] Search finished in 23085ms

issue with RuntimeUnityEditor_BepInEx5_v2.1.zip

Hi, it seems there is an 0 bit file in the zip called plugins.
7-zip just hangs and gives an error that it cant find the files when i try to extract it.
Once i delete the plugins file from the archive it has no problem extracting it.
Hope it is not something only on my end.

IPC Server Added

Basic IPC server added in fork https://github.com/wh010ne/RuntimeUnityEditor

Includes test client. For now just foundation functionality for IPC communication. Ready for tying to other components. Non-blocking, runs on background thread. Asynchronous. Use's native API. no dependencies.

Please Help

Hello, I am new to this may you help me to get started and more detailed tutorial. I just want to ask how to build and how to change car speed, height, or car parts

Thanks.

Select object under cursor/point of aim

Runtime editor is really super useful, but often, it can sometimes be difficult to even find the right entity that you are after, especially when you are searching through a few hundred objects. Would it be possible, and have you considered implementing a method to select the current GO under the cursor / point of aim

Would be useful to have some utility functions such as cloning/duplciation & removal.

Credit to Elysium#5804 for the idea

2022 compile issues.

Looksd like the extensions are making its not compile. also in cities 2 the f12 hook is not working.

F12 doesn't bring up the RuntimeUnityEditor interface but there's no log issues that I can see that would suggest a failure

I've also disabled the use of F12 in steam so that's not potentially overriding it. Suggestions?

[Message:   BepInEx] BepInEx 5.4.22.0 - Lethal Company (2024-01-05 6:38:28 PM)
[Info   :   BepInEx] Running under Unity v2022.3.9.15351836
[Info   :   BepInEx] CLR runtime version: 4.0.30319.42000
[Info   :   BepInEx] Supports SRE: True
[Info   :   BepInEx] System platform: Bits64, Windows
[Message:   BepInEx] Preloader started
[Info   :   BepInEx] Loaded 1 patcher method from [BepInEx.Preloader 5.4.22.0]
[Info   :   BepInEx] 1 patcher plugin loaded
[Info   :   BepInEx] Patching [UnityEngine.CoreModule] with [BepInEx.Chainloader]
[Message:   BepInEx] Preloader finished
[Message:   BepInEx] Chainloader ready
[Message:   BepInEx] Chainloader started
[Info   :   BepInEx] 4 plugins to load
[Info   :   BepInEx] Loading [Fix Resolution 1.0.0]
[Info   :  HarmonyX] ### Harmony id=harmony-auto-270b19c1-f37a-4145-b603-92d63a40e0d8, version=2.9.0.0, location=F:\SteamLibrary\steamapps\common\Lethal Company\BepInEx\core\0Harmony.dll, env/clr=4.0.30319.42000, platform=Win32NT, ptrsize:runtime/env=8/Bits64, Windows
### Started from void FixResolution.Main::Awake(), location F:\SteamLibrary\steamapps\common\Lethal Company\BepInEx\plugins\FixResolution.dll
### At 2024-01-20 11.41.37
[Info   :  HarmonyX] Patching void UnityEngine.Camera::set_targetTexture(UnityEngine.RenderTexture value) with 1 prefixes, 0 postfixes, 0 transpilers, 0 finalizers
1 prefixes:
* static void FixResolution.Main::TargetTexturePrefix(UnityEngine.Camera __instance, UnityEngine.RenderTexture& __0)

[Info   :  HarmonyX] Running ILHook manipulator on void UnityEngine.Camera::set_targetTexture(UnityEngine.RenderTexture value)
[Info   :  HarmonyX] Writing prefixes
[Info   :  HarmonyX] Patching void HUDManager::UpdateScanNodes(GameNetcodeStuff.PlayerControllerB playerScript) with 0 prefixes, 1 postfixes, 0 transpilers, 0 finalizers
1 postfixes:
* static void FixResolution.Main::UpdateScanNodesPostfix(HUDManager __instance, GameNetcodeStuff.PlayerControllerB playerScript)

[Info   :  HarmonyX] Running ILHook manipulator on void HUDManager::UpdateScanNodes(GameNetcodeStuff.PlayerControllerB playerScript)
[Info   :  HarmonyX] Writing postfixes
[Info   :   BepInEx] Loading [Remove Camera Filter 1.0.0]
[Info   :   BepInEx] Loading [Runtime Unity Editor 5.2.1]
[Info   :   BepInEx] Loading [Viewbob Fix 1.1]
[Info   :  HarmonyX] Created Harmony instance id=snet0.lcviewbobfix, version=2.0.0.0, location=F:\SteamLibrary\steamapps\common\Lethal Company\BepInEx\core\0Harmony20.dll - Started from System.Void HarmonyLib.Tools.Logger::Log(HarmonyLib.Tools.Logger+LogChannel,System.Func`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]],System.Boolean) location=F:\SteamLibrary\steamapps\common\Lethal Company\BepInEx\core\0Harmony.dll
[Info   :  HarmonyX] Patching snet0.lcviewbobfix...
[Info   :  HarmonyX] Patching System.Void GameNetcodeStuff.PlayerControllerB::SpawnPlayerAnimation()
[Info   :  HarmonyX] HarmonyPrepare result: True
[Info   :  HarmonyX] Patching void GameNetcodeStuff.PlayerControllerB::SpawnPlayerAnimation() with 0 prefixes, 1 postfixes, 0 transpilers, 0 finalizers
1 postfixes:
* static void LCViewbob.Patches.AnimPatch::Postfix()

[Info   :  HarmonyX] Running ILHook manipulator on void GameNetcodeStuff.PlayerControllerB::SpawnPlayerAnimation()
[Info   :  HarmonyX] Writing postfixes
[Info   :  HarmonyX] Patching snet0.lcviewbobfix took 7ms
[Message:   BepInEx] Chainloader startup complete
[Info   : Unity Log] Saving changed settings
[Info   : Unity Log] Facepunch transport is disabled.
[Info   : Unity Log] Returning week num: 5
[Info   : Unity Log] week num: 5

Correct Object Browser's scroll behavior to jump to the correct object after clearing search

This one's been driving me a bit nuts since I'm working on a game that has many many GameObjects. After clicking Clear on the search bar, it clears the search but the selected transform is not visible in the scroll window. It also doesn't return the the previous transform is nothing was selected.

I have fixed both, PR inbound...

This will fix ensure Object Browser Clear button, Open in Scene Object Browser, REPL findTree and mouse inspect jump directly to the correct GO.

Color code Prefab's a different color

Currently working on a game that has 1000s of prefabs, cluttering the Object Browser and everything appears as a duplicate (Prefab + the instance). Suggest changing testing for go.scene.name == null to know if it's a prefab. Also suggest changing activeSelf to activeInHierarchy so it's clear whether a GO is really active or not.

Also already done, PR inbound.

Failed to initialize GizmoDrawer on game Smol Ame / Remove dependency on UnityEngine.UI.dll

I found there is a warnning log when I launching Smol Ame
also Inspector and Mouse inspec don't work

[Message:   BepInEx] BepInEx 5.4.21.0 - Smol Ame (2021/9/1 4:55:11)
[Info   :   BepInEx] Running under Unity v2019.3.0.9552006
[Info   :   BepInEx] CLR runtime version: 4.0.30319.17020
[Info   :   BepInEx] Supports SRE: False
[Info   :   BepInEx] System platform: Bits64, Windows
[Message:   BepInEx] Preloader started
[Info   :   BepInEx] Loaded 1 patcher method from [BepInEx.Preloader 5.4.21.0]
[Info   :   BepInEx] 1 patcher plugin loaded
[Info   :   BepInEx] Patching [UnityEngine.CoreModule] with [BepInEx.Chainloader]
[Message:   BepInEx] Preloader finished
[Message:   BepInEx] Chainloader ready
[Message:   BepInEx] Chainloader started
[Info   :   BepInEx] 1 plugins to load
[Info   :   BepInEx] Loading [Runtime Unity Editor 4.0.1]
[Message:   BepInEx] Chainloader startup complete
[Warning:Runtime Unity Editor] Failed to initialize GizmoDrawer - System.NullReferenceException: Object reference not set to an instance of an object
  at RuntimeUnityEditor.Core.Gizmos.GizmoDrawer.Initialize (RuntimeUnityEditor.Core.Utils.Abstractions.InitSettings initSettings) [0x00017] in <79c4d685cfe44715920d3eafb4b16427>:0 
  at RuntimeUnityEditor.Core.FeatureBase`1[T].RuntimeUnityEditor.Core.IFeature.OnInitialize (RuntimeUnityEditor.Core.Utils.Abstractions.InitSettings initSettings) [0x00012] in <79c4d685cfe44715920d3eafb4b16427>:0 
  at RuntimeUnityEditor.Core.RuntimeUnityEditorCore.AddFeatureInt (RuntimeUnityEditor.Core.IFeature feature) [0x00000] in <79c4d685cfe44715920d3eafb4b16427>:0 
  at RuntimeUnityEditor.Core.RuntimeUnityEditorCore..ctor (RuntimeUnityEditor.Core.Utils.Abstractions.InitSettings initSettings) [0x000ce] in <79c4d685cfe44715920d3eafb4b16427>:0 
[Info   :Runtime Unity Editor] Successfully initialized 9/10 features: CursorUnlocker, WireframeFeature, WindowManager, MouseInspect, ReplWindow, ObjectViewWindow, Inspector, ProfilerWindow, DnSpyHelper

ReflectionTypeLoadException - RuntimeUnityEditorCore.dll

image_2023-12-11_221633240

I am trying to get RuntimeUnityEditor to run with a new game. I have unity mod manager installed i wrote a small test mod and its working fine. I am able to interact with game objects and scripts.
This game does not have a profile in the UMM list, so I selected derail valley as I have only that game with me rn from the list, looked at assembly code of new game with dnSpy and replaced the injection, starting and ui points for UMM. This was successful and I am able to start writing my working mods.

But for some reason no UnityRuntimeEditor won't load the core module [Error Snapshot attached above}. I tried using source code to build the project myself, I also got the mcs project, but while re refrencing some nuget packages i have to update them.
I even copied all the referenced dlls from all projects to the mod folder, still no luck

I checked RuntimeEditor on derail valley and it runs perfectly fine with it.

Can you help me with this? Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.