跳到主要内容

Transfer Assistant

全平台

此 Unity 工具将协助您使用 .unitypackage 导出功能,在将资源从一个项目转移到另一个项目时,剔除您认为不需要的资源。

general_zh-cn.png

此工具将故意忽略某些资源引用,仅保留您主动需要的资源。

  • 它不会导出预制件引用的每个资源,而是仅导出主化身上存在的资源。 如果预制件使用了主化身未使用的资源,则该资源不会被包含。这是默认行为,但可以更改。
  • 您可以选择按类型或按组件忽略资源,以及它们引用的任何资源。示例:
    • 当您忽略材质时,它也会忽略这些材质使用的贴图。
    • 当您忽略诸如 Modular Avatar Menu Item 之类的组件时,它也会忽略这些组件引用的图标贴图。
  • 您可以选择忽略标记为 EditorOnly 的对象所引用的资源。

如果导出的内容中包含了意外的资源,Transfer Assistant 用户界面可以帮助您定位哪个对象或组件依赖于它。

dependency_zh-cn.png

Transfer Assistant 永远不会修改场景或预制件的内容。

此工具的预期用途是在不同的游戏之间导出化身项目文件,例如,从 Unity 2022 BIRP 项目转移到独立的 Unity 6.4 URP 项目。 在这样的项目中,资源分散在多个文件夹中,而在这些文件夹中,有些资源是您想要排除的,因为它们在目标项目中没有任何用处,例如动画控制器或动画文件。

此工具不适用于以下情况​

如果您是一名产品创作者,此工具并非为导出打算作为发布版本一部分进行发布和分发的 .unitypackage 文件而设计的,因为此类资源通常需要在文件夹结构上进行更严格的规范。 此工具的某些功能可用于内省目的,但不建议将此工具用于产品发布管理。

下载​

此工具可以在 Booth.pm 上下载:

它也可以通过 ALCOM 安装:

Your support makes this free tool possible
Thanks to my Patreon supporters for making tool creation sustainable ⭐

If you find success in using my free tools, visit my Patreon to support the creation of these tools.
You'll also get additional tools as Patreon rewards.

如何使用​

以下是使用该工具的基本步骤:

选择要分析的资源​

首先,选择以下操作之一:

分析预制件​

在 Project 选项卡中,右键单击预制件并选择 Transfer Assistant...

或者,您可以转到 Window > Haï~ > Transfer Assistant,然后选择一个预制件,并点击 执行分析 按钮。

信息

如果您正在制作化身,您应该在 Project 视图中选择包含您的化身的预制件。

project_menu.png

分析场景​

要分析场景中包含的对象,您必须:

  • 在 Unity 编辑器中打开场景。
  • 转到 Window > Haï~ > Transfer Assistant。
  • 如有必要,请按照下一节的说明更改窗口语言。
  • 将右上角的下拉菜单设置为 当前场景。
  • 点击 执行分析 按钮。

window_menu.png

scenes_zh-cn.png

其他详细信息​

右上角的下拉菜单允许您在不同的对象选择模式之间切换。

  • 单一目标: 仅分析一个根对象。
  • 多目标: 分析多个根对象。
  • 当前场景: 分析打开场景的所有根对象,并将场景本身添加到导出列表中。
    • 这不包括场景中的渲染设置。天空盒、光照数据和其他场景引用将不会包含在导出中。
    • 如果您打开了多个场景,则都会被分析。

如果您决定更改目标,或者对任何资源进行了修改,请点击 执行分析 按钮以刷新内容。

更改窗口语言​

您可以使用窗口底部的下拉菜单更改语言,该下拉菜单显示英文单词 "Language"。

备注

如果您的语言不可用,但您精通技术,您可以:

  • 要求大语言模型将 Packages/dev.hai-vr.transfer-assistant/Scripts/Editor/Locale/en.json 文件翻译成一个新的 .json 文件,
  • 然后在 Unity 编辑器窗口中按 CTRL-R,
  • 然后点击语言选择下拉菜单右侧的刷新按钮。

language.png

缩小您想要保留的资源引用范围​

按下左侧侧边栏中的复选框以影响将导出的资源。

这些复选框具有级联效应;例如,取消选中 Materials 将影响哪些贴图被导出。

信息

Transfer Assistant 从不修改预制件或场景,因此点击任何按钮都是安全的。

checkboxes_zh-cn.png

包含 EditorOnly​

  • 选中时,包含所有对象。这是默认选项。
  • 取消选中时,不包含 EditorOnly 对象及其任何子对象中引用的资源。
    • 但是,为了避免导入过程中出现错误,预制件源始终会被包含,即使预制件实例是 EditorOnly。

即使在导出过程中,这也不会从预制件中删除标记为 EditorOnly 的 GameObject 或组件;它只是忽略它们包含的引用。

是否选中此项取决于您的工作流程。

包含 Prefab 中的隐藏项目​

此选项处理覆盖预制件实例如何隐藏源预制件内部资源的问题。

  • 选中时,即使您的目标对象因为覆盖而在层级结构中未使用该资源,源预制件中引用的资源也会被包含。
  • 取消选中时,源预制件中引用的资源不会被包含,因此仅包含您的目标对象主动使用的资源。这是默认选项。
    • 对于化身类项目,这是推荐的选项,因为您通常只对化身上主动使用的内容感兴趣。

simplehidden.png

默认情况下, 包含 Prefab 中的隐藏项目 处于未选中状态。保持未选中状态有时会导致导出的资源数量大幅减少。

在这个例子中,通过将材质转换为 NonToon 修改了一个化身。

  • 预制件源仍然引用转换之前的旧材质,尽管化身并未主动使用这些材质。
  • 通过保持 包含 Prefab 中的隐藏项目 为未选中状态,那些旧材质将不包含在导出中,仅包含 NonToon 材质。

剔除​

  • 选中某种资源类型时,该资源类型将被包含,并且该资源类型引用的任何其他资源也将被包含。
  • 取消选中某种资源类型时,该资源类型将不被包含,并且该资源类型引用的资源也不被包含。

culling.png

取消选中 Animator Controller 不仅会从导出中删除 Animator Controllers,还会从导出中删除这些 Animator Controllers 使用的 Blend Tree 资源和 Animation Clip 资源。

组件​

  • 选中某个组件时,该组件引用的任何资源都将被包含,并且这些资源引用的任何其他资源也将被包含。
  • 取消选中某个组件时,这些组件引用的资源将不被包含,并且这些资源引用的资源也不被包含。

即使在导出过程中,这也不会从预制件中删除组件。

探索哪些资源需要其他资源​

Transfer Assistant 的主面板包含一个对象的依赖树。该树的显示方式是根节点依赖于子节点(即子节点是对象所依赖的内容)。

许多对象(如材质或贴图)会被多次使用,这意味着它们会有多个父节点;当发生这种情况时,您会在该树中多次看到同一个对象。

为了简明起见,每个对象仅显示其子节点一次;其他出现的地方将在右侧添加文字 "(已显示)"。

点击任何对象以高亮显示该对象的位置。

使用以下功能进行导航并弄清楚为什么需要某些对象:

  • 按下特定对象上的放大镜图标以聚焦于该对象。
    使用此功能了解它依赖于哪些对象以及哪些对象依赖于它。
  • 按下侧边栏上的放大镜图标以聚焦于这些资源类型。
    使用此功能可视化需要这些资源类型的每个依赖项。
  • 在搜索框中输入文本以查找特定的资源名称。

您可以再次点击放大镜图标以清除搜索。

search_zh-cn.png

备注

颜色编码如下:

  • 大多数变灰的对象都不是资源,例如,它们可能是组件或非预制件的 GameObject。组件显示为变灰的黄色。
  • 蓝色对象是 Prefab 源 或 Prefab 模型,这是项目中以文件形式存在的预制件资源。
  • 绿色对象是 Prefab 实例,这是场景对象。它们可能存在于场景中或在其他预制件内部。

Prefab 实例 通常与它所依赖的 Prefab 源 同名,这可能会导致阅读混淆。这就是它们被颜色编码的原因。

准备导出以预览将导出的资源文件​

在侧边栏中,按下 准备导出... 按钮。这将打开一个新窗口,看起来类似于 Export .unitypackage 窗口。

在这里,您可以检查将导出哪些文件并细化您的选择。

该窗口的侧边栏有每种资源类型的按钮。这些按钮不具有级联效应。

  • 选择: 选择该类型的资源,这会将它们包含在导出中。
  • 取消选择: 取消选择该类型的资源,这会将它们从导出中排除。
  • 取消选择并隐藏: 取消选择该类型的资源并将其从“导出”窗口中删除。
    • 注意:按下 取消选择并隐藏 将不会取消选择被这些资源引用的资源,因此这与 Transfer Assistant 窗口中的 剔除 选项不同。

export_zh-cn.png

注意

在 Transfer Assistant 窗口中所做的更改将不会反映在 Prepare Export 窗口中:

如果您决定缩小或扩大依赖关系,您将需要再次按下 准备导出... 按钮。

找出为什么需要意外的资源文件​

在 Prepare Export 窗口中,您有时可能会看到某些文件,但不明白为什么要导出它们。

在这种情况下,按下 Prepare Export 窗口右侧的放大镜图标。这将在 Transfer Assistant 窗口内搜索该资源。

您可以使用此信息来弄清楚层级结构中的哪个对象需要该资源。

提示

即使您不打算导出文件,也可以按下 准备导出... 按钮。

由于 Prepare Export 窗口将您的依赖关系表示为文件和文件夹,因此这对于帮助定位意外资源非常有用。

exportexplain.png

导出选定的资源​

在 Prepare Export 窗口底部附近,按下 导出到文件... 按钮将选定的资源导出到您选择的文件。

或者,按下 快速导出 按钮导出或覆盖到 export.unitypackage 文件中。