Skip to content

中文版 一个用于探索、调试和修改IL2CPP和Mono Unity游戏的内置UI工具。

License

Notifications You must be signed in to change notification settings

aopkcn/UnityExplorer-Chinese

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,099 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔍 一个用于探索、调试和修改Unity游戏的内置UI工具。

✔️ 支持从5.2到2021+的大多数Unity版本(IL2CPP和Mono)。

✨ 由 UniverseLib 提供技术支持

该项目fork自sinai-dev/UnityExplorer翻译的中文版

# 发布版本(源已停止维护)

⚡ Thunderstore发布版本:BepInEx Mono | BepInEx IL2CPP | MelonLoader IL2CPP

## 发布计划(源已停止维护)

发布最多每周一次,通常在周末。

每日构建版本可以在这里找到。

BepInEx

版本 IL2CPP Mono
BIE 6.X 链接 链接
BIE 6.X (CoreCLR) 链接
BIE 5.X ✖️ n/a 链接
  1. 将发布文件解压到一个文件夹中
  2. 取出plugins/sinai-dev-UnityExplorer文件夹并将其放置在BepInEx/plugins/

注意:BepInEx 6可通过builds.bepinex.dev获取

MelonLoader

版本 IL2CPP Mono
ML 0.5 链接 链接
ML 0.6 链接 ✖️
  1. 将发布文件解压到一个文件夹中
  2. Mods文件夹内的DLL复制到您的MelonLoader Mods文件夹中
  3. UserLibs文件夹内的所有DLL复制到您的MelonLoader UserLibs文件夹中

独立版本

IL2CPP Mono
链接 链接

独立版本可以与任何您选择的注入器或加载器一起使用,但需要手动加载依赖项。

  1. 确保加载了所需的库 - UniverseLib、HarmonyX和MonoMod。如果需要,可以从UnityExplorer.Editor发布版本中获取它们。
  2. 对于IL2CPP,加载Il2CppAssemblyUnhollower并启动Il2CppAssemblyUnhollower运行时
  3. 加载UnityExplorer DLL
  4. 使用UnityExplorer.ExplorerStandalone.CreateInstance();创建Unity Explorer实例
  5. 如果需要,可以订阅ExplorerStandalone.OnLog事件来处理日志

Unity编辑器

  1. 下载UnityExplorer.Editor发布版本。
  2. 安装包,通过包管理器导入package.json文件,或手动将文件夹拖入您的Assets文件夹。
  3. Runtime/UnityExplorer预制件拖入场景,或创建GameObject并向其添加Explorer Editor Behaviour脚本。

常见问题和解决方案

尽管UnityExplorer应该可以在大多数Unity游戏中开箱即用,但在某些情况下,您可能需要调整设置才能使其正常工作。

要调整设置,请打开配置文件:

  • BepInEx: BepInEx\config\com.sinai.unityexplorer.cfg
  • MelonLoader: UserData\MelonPreferences.cfg
  • 独立版本: sinai-dev-UnityExplorer\config.cfg

尝试调整以下设置,看看是否能解决您的问题:

  • Startup_Delay_Time - 增加到5-10秒(或根据需要更长),可以解决UnityExplorer在启动期间被销毁或损坏的问题。
  • Disable_EventSystem_Override - 如果输入不正常工作,尝试将其设置为true

如果这些修复无效,请在此仓库中创建一个issue,我会尽力调查。

功能

检查器API

如果您想从C#控制台外部检查对象或类型,请使用InspectorManager类:

检查对象:

UnityExplorer.InspectorManager.Inspect(theObject);

检查类型:

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

对象浏览器

  • 使用场景浏览器选项卡遍历活动场景,以及DontDestroyOnLoad和HideAndDontSave对象。
    • "HideAndDontSave"场景包含带有该标志的对象,以及不在任何场景中但行为相同的Assets和Resources。
    • 您可以使用场景加载器轻松加载构建中的任何场景(可能不适用于Unity 5.X游戏)
  • 使用对象搜索选项卡搜索Unity对象(包括GameObject、Component等)、C#单例或静态类。
    • 使用UnityObject搜索查找任何派生自UnityEngine.Object的对象,可选择过滤条件
    • 单例搜索将查找任何具有典型"Instance"字段的类,并检查其当前值。这在某些IL2CPP游戏中可能会导致意外行为,因为我们无法区分真正的属性和字段属性,因此将调用一些属性访问器。

检查器

检查器用于查看任何类型对象的详细信息并操作它们的值,以及使用静态反射检查C#类。

  • GameObject检查器(选项卡前缀[G])用于检查GameObject,以及查看和操作其Transform和Component。
    • 您可以编辑检查器中的任何输入字段(只读字段除外),然后按Enter应用更改。您也可以对GameObject路径执行此操作,作为更改GameObject父对象的一种方式。按Escape键取消编辑。
    • 注意:检查带有Canvas的GameObject时,Transform控件可能会被RectTransform锚点覆盖。
  • 反射检查器(选项卡前缀[R][S])用于其他所有内容
    • 默认情况下不启用自动更新,您必须按应用才能使您所做的任何更改生效。
    • 按钮展开某些值,如字符串、枚举、列表、字典、某些结构体等
    • 使用顶部的过滤器快速找到您要查找的成员
    • 对于Texture2DImageSpriteMaterial对象,检查器顶部有一个查看纹理按钮,可让您查看纹理并将其保存为PNG文件。
    • 对于AudioClip对象,有一个显示播放器按钮,可打开音频播放器小部件。对于以DecompressOnLoad方式加载的剪辑,还有一个按钮可将其保存为.wav文件。

C#控制台

  • C#控制台使用Mono.CSharp.Evaluator来定义临时类或运行即时REPL代码。
  • 您可以通过将脚本命名为startup.cs并将其放在sinai-dev-UnityExplorer\Scripts\文件夹(此文件夹将在您放置DLL文件的位置创建)中来在启动时自动执行脚本。
  • 有关更详细的信息,请参阅C#控制台菜单中的"帮助"下拉菜单。

Hook管理器

  • Hooks面板允许您通过点击按钮来Hook方法以进行调试。
    • 只需输入任何类并从菜单中Hook您想要的方法。
    • 您可以使用"编辑Hook源码"按钮编辑生成的Hook的源代码。接受的方法名称是Prefix(可以返回boolvoid)、PostfixFinalizer(可以返回Exceptionvoid)和Transpiler(必须返回IEnumerable<HarmonyLib.CodeInstruction>)。您可以根据需要定义多个补丁。

鼠标检查

  • "检查器"面板中的"鼠标检查"下拉菜单允许您检查鼠标下的对象。
    • 世界:使用Physics.Raycast查找Collider
    • UI:使用GraphicRaycaster查找UI对象

自由相机

  • UnityExplorer提供了一个基本的自由相机,您可以使用键盘和鼠标控制。
  • 与UnityExplorer的所有其他功能不同,您可以在UnityExplorer菜单隐藏时仍使用自由相机。
  • 支持使用游戏的主Camera或单独的自定义Camera。
  • 有关进一步的说明和详细信息,请参阅Freecam面板。

剪贴板

  • "剪贴板"面板允许您查看当前粘贴值,或清除它(将其重置为null
    • 可以从反射检查器、可枚举对象或字典中的任何成员,以及从任何检查器选项卡的目标复制值
    • 可以将值粘贴到反射检查器中的任何成员
    • 方法/属性评估器中的不可解析参数允许粘贴值
    • C#控制台有帮助方法Copy(obj)Paste()用于访问剪贴板

设置

  • 您可以通过菜单的"选项"选项卡或直接从配置文件更改设置。
    • BepInEx: BepInEx\config\com.sinai.unityexplorer.cfg
    • MelonLoader: UserData\MelonPreferences.cfg
    • 独立版本 {DLL位置}\sinai-dev-UnityExplorer\config.cfg

构建

  1. 运行build.ps1PowerShell脚本以构建UnityExplorer。发布版本位于Release文件夹中。

从IDE构建单个配置是可以的,但请注意,初始构建过程构建到Release/<version>/...中,而不是PowerShell脚本使用的子文件夹中。该项目目前不支持批量构建。

鸣谢

免责声明

UnityExplorer与Unity Technologies没有任何关联。"Unity"、Unity标志和其他Unity商标是Unity Technologies或其关联公司在美国和其他地区的商标或注册商标。

About

中文版 一个用于探索、调试和修改IL2CPP和Mono Unity游戏的内置UI工具。

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 98.5%
  • PowerShell 1.5%