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

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

License

Notifications You must be signed in to change notification settings

aopkcn/UnityExplorer-Chinese

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%

AltStyle によって変換されたページ (->オリジナル) /