Releases: sinai-dev/UnityExplorer
UnityExplorer 4.0.4
- Cleaned up the
HideAndDontSave
support implementation and fixed a few small issues with it which affected some games - Added support for MelonLoader v0.3.0 (as "MelonLoader_Legacy")
- Fixed a niche exception which can happen when selecting AutoComplete options in some games
- ToStringHelper no longer tries to format strings, formatting is only used by ParseUtility now
UnityExplorer 4.0.3
- Fixed inserting ScrollPool cells at the wrong index (off by one), which caused one item in the list to be displayed out of order.
UnityExplorer 4.0.2
Some more hotfixes for v4. If you haven't updated to v4 yet, please read the 4.0.0 patch notes below.
Note for IL2CPP users: some more signatures were added to the default Reflection Blacklist. To update your blacklist, set the config value for the blacklist to "DEFAULT" (not case sensitive) and restart the game.
All versions
- Fixed a null reference exception if the game tries to change EventSystems before UnityExplorer's UI is created.
- Improved the base entry type detection for IEnumerable and IDictionary
IL2CPP
- Now force-loading all Unhollowed DLLs on startup, and using LoadFile instead of Load. Fixes several issues in IL2CPP.
- No longer using Il2CppType.From when looking for deobfuscated types, fixes a crash in some games (and is faster anyway).
UnityExplorer 4.0.1
Some hotfixes and tweaks to the 4.0.0 release.
- Fixed the panel sizes/layouts being broken after changing resolutions. Added better checks to prevent panels ever being improperly sized or positioned.
- Added support for writing to
IList<T>
types which don't implement non-genericIList
(ie.Il2CppArrayBase
). - Fixed support for unusual types of
IEnumerable
andIDictionary
which inherit from a concrete generic type. For example,SomeType : List<int>
. - Adjusted some of the UI layouts a little bit.
UnityExplorer 4.0.0
The focus of the v4 rewrite was mainly on the UI, but while doing that I found lots of opportunities to improve the rest of the project as well. Most of the design of v3 has remained intact so it shouldn't be too unfamiliar.
Some things you may want to be aware of:
- MelonLoader users: 4.0 requires MelonLoader 0.3.1, you can get it from here
- There are no longer any "Apply" buttons in the GameObject inspector, you just press Enter to confirm changes (or click outside the input), and Escape to cancel changes.
- (IL2CPP) If a UnityEngine method which was visible in v3 is no longer visible in v4, check if it's on the new Reflection Blacklist in the options tab (or in the Config file). This blacklist is for certain known methods which fail unstripping and cause a crash.
Changelist
I didn't really keep a proper changelist while rewriting, but the tl;dr is that it should be a lot more stable, better performance, and a better user experience.
UI
- UI objects are no longer ever destroyed, we pool and reuse everything we create
- Developed new panel system, allowing for separate panels for each tab. The "Search" tab was merged with the "Scene Explorer" to make the new Object Explorer.
- Made a custom scroll pool solution to replace the old "pages" system
- Made an object-tree viewer for a better experience when navigating Transforms
- Made the auto-completer a reusable widget, it's now used for various "Type" input fields throughout UnityExplorer.
- Developed a better solution for UI event listeners to avoid burst-invoke situations, reducing the workload for processing user input
Type support
- Added better support for IL2CPP primitives, structs and strings, and better boxing/unboxing support.
- Added parsing support for UnityEngine structs (Vector, etc), as well as Enums and some other system types. This extends to all parts of UnityExplorer.
- Various misc QoL improvements to most of the InteractiveValue classes
C# Console
- Improved the auto-complete and auto-indent interactions, it should now be a lot nicer to use.
- Fixed several crashes (indirectly, through the Reflection Blacklist and burst-invoke changes)
- Rewrote the Lexer from scratch
Back-end
- Redesigned and simplified the ReflectionUtility classes. Added a listener to AssemblyLoad to cache types loaded after UnityExplorer.
- Significantly reduced the amount of string and list allocations through the entire project, resulting in about 10x less GC usage.
- Cleaned up references, using submodules for some libs
And probably a lot more that I can't think of right now.
Please let me know if you have any issues with 4.0, I've stress tested it on a few games but with such major changes there will probably be a few things I've missed.
UnityExplorer 3.3.15
- Fixed the small issues with C# Console syntax highlighting and suggestions caused by the onValueChanged fix in the previous release
UnityExplorer 3.3.14
- Fix crashes caused by large instant changes to C# Console input field (ie. select all + delete, etc).
UnityExplorer 3.3.13
- Added
Aggressive_Mouse_Unlock
config option to try to force the mouse to be unlocked when the Harmony patches aren't enough. - You will need to restart your game after changing the option for your change to take effect.
- If you are unable to access the options page of the menu to enable this setting, you can also enable it from the config file directly.
UnityExplorer 3.3.12
- Added configurable startup delay, default is 1 second. Can adjust it through your mod preferences or through the UE menu. This is to fix the issue in some games where the UI is destroyed instantly on startup (#54).