首页
工具
screenshot
1/10
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
thumbnail
这是一款可将 UGUI 预制体一键导出为 FairyGUI 工程的编辑器插件,自动完成坐标系转换、资源映射与组件识别,省下 80% 以上手工重建时间。资源包含 Image / Text / Button / Toggle / Slider / 列表等主流 UI 组件的自动转换。面向采用 FairyGUI 的 国内小游戏团队,以及希望复用 Asset Store 海量 UGUI 资源包的开发者。
渲染管线兼容性
内置渲染管线是团结引擎/Unity的默认渲染管线,它是一种通用型渲染管线,但可定制化的选项较为有限。通用渲染管线(简称 URP)是一种可编程渲染管线,能够快速、轻松地进行定制,并可在广泛的平台上实现优化的图形效果。高清渲染管线(简称 HDRP)同样是一种可编程渲染管线,能够在高端平台上实现前沿的高保真图形效果。
团结/Unity版本
内置渲染管线
通用渲染管线(URP)
高清渲染管线(HDRP)
团结 1.0.0
兼容
不兼容
不兼容
团结/Unity版本
内置渲染管线
通用渲染管线(URP)
高清渲染管线(HDRP)
Unity 2020.1.0f1c1
兼容
不兼容
不兼容
描述

UGUI → FairyGUI 一键转换工具

一、简介

UGUI_to_FairyGUI 是一个 Unity 编辑器扩展,把使用 UGUI(Unity UI / uGUI)搭建的 Prefab 批量转换为 FairyGUI 的工程结构(package.xml + component + image 等资源)。

转换在编辑器内离线完成,不需要运行游戏。导出的工程可以直接用 FairyGUI 编辑器打开继续编辑。导出后,建议以 FairyGUI 工程作为后续 UI 迭代的主工程,不再回头维护原始 UGUI Prefab。

目标用户:已经在 Unity 里用 UGUI 做好了界面,希望迁移到 FairyGUI、或想同时产出 FairyGUI 版本的项目。

版本:v1.0.2

说明:文档与商店页中用于演示的界面截图、宣传图,所使用的 UI 工程来自其他第三方 GUI 资源商店,并不包含在本项目中。本工具只提供「UGUI Prefab → FairyGUI 工程」的转换能力,不包含任何演示用的界面素材。

二、背景

Unity Asset Store 上有大量现成的 UGUI 界面资源包(主菜单、弹窗、设置面板、道具列表等)。小游戏平台(微信小游戏、抖音小游戏等)普遍使用 FairyGUI 作为跨项目 UI 方案——它提供可视化编辑器、像素级精确布局、资源按需加载、低内存占用等优势。

两者之间存在一个现实缺口:Asset Store 上的 UGUI 资源包丰富且便宜,但 FairyGUI 不能直接使用 UGUI 的 Prefab。如果手动对照还原——打开 UGUI 界面、数间距、看对齐、配图片、写脚本——一个中等复杂度的界面往往要花数小时去拆解大量基础组件。本工具的作用,就是把这部分重复劳动自动化

三、UGUI 与 FairyGUI 的架构差异

以下是两套系统在关键维度上的差异:

  • 坐标系:UGUI 以中心锚点(anchor/min/max)决定拉伸;FairyGUI 用左上角绝对坐标,按像素定位。
  • 资源管理:UGUI 的 Sprite 分散在各目录;FairyGUI 用统一的 package.xml 按包管理。
  • 组件树:UGUI 为 Prefab 层级 + RectTransform;FairyGUI 为 XML displayList + <component> 引用。
  • 图片九宫格:UGUI 用 Image.type = Sliced,依赖 Sprite Editor 的 9-slice 设置;FairyGUI 用 <image scale="9grid">,边距在 XML 中声明。
  • 按钮:UGUI 为 Button 组件 + OnClick 事件;FairyGUI 为 <component extention="Button"> + 内置 transition。
  • 列表:UGUI 用 ScrollRect + Content + GridLayoutGroup 手动搭建;FairyGUI 用 <list> + <item> + defaultItem 声明式。
  • 滚动:UGUI 用 ScrollRect 组件;FairyGUI 用 <scrollbar>(水平/垂直)组件,或 overflow 属性。
  • 变体:UGUI 为多个 Prefab 手动维护一致性;FairyGUI 用组件去重 + repName 替换,或 override 单独生成。

理解这些差异有助于判断哪些东西能自动转、哪些需要手动调整

四、本项目解决的问题

Unity UI 项目中的界面通常是复杂的树形 Prefab。列表(商店、背包、图鉴等)一般作为 Prefab 内部的一个子树,由 LayoutGroup(Horizontal / Vertical / Grid)组织,子项也包含在这棵 Prefab 树里,而不是预先拆分成独立的 Prefab 资产。要把这样的列表搬进 FairyGUI,传统做法是手动把每个子项拆成独立 Prefab、再搭成 <list>,工作量大且容易遗漏

UGUI_to_FairyGUI 是一个 Unity Editor 插件,能将 Unity UGUI Prefab 一键导出为 FairyGUI 编辑器可识别的 XML 文件,自动完成坐标系转换、资源映射、组件类型识别、交互定义迁移等基础层的映射工作。

重要:UGUI 和 FairyGUI 是两套架构迥异的 UI 系统。本工具解决的是静态结构 + 资源 + 基础交互的自动化迁移,无法覆盖动画、特效、遮罩、粒子、自定义脚本等系统级差异——这些部分仍需在 FairyGUI 编辑器中手工处理。工具产出的 XML 可直接在 FairyGUI 编辑器中打开修改,把它当作「省去重建骨架」的起步,而不是最终成品。

五、核心能力

本工具具备以下核心能力:

  1. 一键导出:选择 Prefab 目录 → 选择输出目录 → 生成完整的 FairyGUI 工程(组件 XML、package.xml、.fairy 文件)。
  2. 全量组件映射:Image(Simple/Sliced/Filled)、Text/TMP、Button、Toggle、Slider、ScrollBar、ScrollRect、InputField、Dropdown、LayoutGroup(TMP 运行时自动检测,无需预装)。
  3. 按钮过渡效果保留:None/Animation → downEffect="scale"、ColorTint → controller + gearColor 六态颜色、SpriteSwap → controller + gearIcon 多态图标,完整映射为 FairyGUI 的 controller/gear 体系。
  4. 按钮命名约定:targetGraphic 对应的独立 Image 改名为 bg,状态图标节点保持 icon;icon 优先、bg 非必须、icon 与 bg 不会是同一对象。
  5. Toggle 选中图标:selectedIcon 取自 Toggle 的 graphic(checkmark),数据驱动。
  6. 引用组件覆写:dedup 重复项通过 <component> 引用 rep 组件时,title/icon/titleColor/titleFontSize 自动作为 <Button> 子节点传递到引用元素上。
  7. 九宫格保留:UGUI Image.Sliced → FGUI scale="9grid",边距自动计算。
  8. 跨包图片共享优化:开启公共包后,被多个包引用的 Sprite 自动归入 Common/ 共享包,避免冗余。
  9. 嵌套 Prefab:与 Button / Slider 等一样视为组件边界,递归提取为独立组件,父组件原位置只留 <component src> 引用;同一嵌套 Prefab 在多处出现只生成一份定义,跨实例共享去重。
  10. 组件去重:分析所有 Prefab 的结构哈希,相同结构只导出一次,差异项通过 override 单独生成变体。
  11. 变体合并:长得一样、仅样式不同的组件合成一个,运行时按 variant 页切换表现,文件从 N 变 1。
  12. List 子项自动提取:自动识别 LayoutGroup 列表,把子项提取成组件并生成 <list> 的 defaultItem 和 <item>,无需手动拆分 Prefab。
  13. 组件类型配置:支持通过正则规则指定组件类型(Button/Label/Slider/ScrollBar/ComboBox),也可在去重编辑器或 Prefab 上手动调整。
  14. Prefab 重名修复:自动修复同级同名 GameObject(FairyGUI 要求名称唯一),避免导出阻塞。
  15. 确定性 ID 生成:所有组件 ID 基于名称的确定性哈希,多次导出同一预制的 ID 一致。
  16. Skip 规则:通过正则规则跳过不需要导出的 Prefab(如 Fx_ 开头的特效)。
  17. 文本描边/阴影:TMP 文本按材质/着色器关键词识别描边,导出为 FairyGUI 描边/阴影;提供默认描边宽度、描边色、阴影色等设置。
技术细节

六、使用说明

1. 安装

本工具是一个 Unity 编辑器扩展,直接用 Unity 打开所在项目即可,无需额外安装。把 UGUI_to_FairyGUI 文件夹放在 Assets 下任意位置均可被识别(通常放在 Assets/UGUI_to_FairyGUI)。

运行环境:Unity 编辑器内(在 Play 模式外使用)。

菜单入口(均在 SkyLad 菜单下):

  1. SkyLad / Export to FairyGUI:打开导出设置面板,执行导出。
  2. SkyLad / Deduplication Editor:打开组件去重编辑器,做结构分析、dup→rep 合并、类型指定等。

2. 前提条件

  1. 使用 Unity 2018.4 或更高版本(建议 2021 LTS 或 2022 LTS)。
  2. 已安装 FairyGUI 编辑器(用于打开导出的工程做后续编辑)。从 https://fairygui.com/ 下载。
  3. 待转换的 Prefab 中,图片资源位于 Assets/ 目录下任意位置即可(不需要放在特定子目录)。
  4. 若使用 TextMeshPro,确保项目的 TMP 包已导入(转换器会运行时检测 TMP 是否可用)。

3. 完整教程(逐步操作)

  1. 准备 Prefab 把要转换的 UGUI Prefab 整理到一个目录(例如 Assets/UI/Prefabs)。确保 Prefab 引用的图片在 Assets/ 下可访问。
  2. 打开设置面板 菜单 SkyLad / Export to FairyGUI,打开「FairyGUI 导出设置」窗口。
  3. 设置目录与项目类型默认 Prefab 根目录:设置后,每次导出将跳过目录选择步骤,直接使用此路径。
    默认导出目录:设置后,导出将默认输出到该目录下的 FairyGUI 工程。
    FairyGUI 项目类型:选择目标平台类型,对应 .fairy 文件中 projectDescription 的 type 属性。 也可不设置,导出时再在弹窗中选择目录。
  4. (可选)配置组件去重 菜单 SkyLad / Deduplication Editor,点击「分析所有组件」,生成去重分析结果(JSON)。在该编辑器里可以:查看并合并结构重复的组件(dup → rep);
    为组件指定 FairyGUI 组件类型(如 Button / Slider / ComboBox 等);
    设置是否「分析时自动给 Prefab 添加类型标记脚本」;
    维护转换类型正则规则与 Prefab 跳过规则。 分析完成后,去重结果会自动作为导出时的权威配置。
  5. 执行导出 回到设置面板,点击「导出到 FairyGUI」。导出流程会:清理旧的导出目录(如开启了「清理导出的 FairyGUI 目录」);
    扫描 Prefab 根目录下的所有 Prefab;
    按配置做组件去重与子组件提取;
    生成 FairyGUI 包结构与资源文件。 若发现同级同名 GameObject 且未开启「导出时重命名重复节点」,导出会中止并提示先修复重名(可用设置面板「修复重名」按钮)。
  6. 在 FairyGUI 中打开 用 FairyGUI 编辑器打开导出目录下的工程。由于 FairyGUI 的包名由工具管理生成,首次打开时请用 FairyGUI 生成所有 package 的唯一 id。

4. 资源与引用

  • 图片位置:Prefab 引用的图片只需在 Assets/ 目录下任意位置即可,工具会按引用关系收集并拷贝,不要求放在特定目录(如 ResourcesData)。
  • Unity 内置资源:来自 Unity 内置的 UI 精灵、默认贴图等虚拟资源不是磁盘真实文件,导出器会按像素渲染为 PNG 自动写出,无需手动替换(压缩纹理 / 图集打包的精灵可再核对导出质量)。
  • Packages/ 与外部路径资源:这类资源当前版本不导出 PNG,需要你在 FairyGUI 里手动替换(后续可补自动导出)。
  • 嵌套 Prefab:嵌套 Prefab 实例与 Button / Slider 等交互组件一视同仁,都是「组件边界」——递归提取为独立组件,父组件原位置只保留一个 <component src> 引用节点,不把子树内联复制进父组件。同一嵌套 Prefab 无论被多少个父组件引用,都只生成一份组件定义,多个引用指向它,跨实例共享去重;被引用组件内部的交互组件 / 列表也会继续递归提取去重。

七、组件映射

主要 UGUI 组件到 FairyGUI 的对应关系按功能分类如下:

基础显示

  • Image → 图片(image)/ 图形(Graph):Simple/Sliced/Filled 分别映射;Sliced 转为 9grid。
  • RawImage → 图片(Texture):按纹理引用导出。
  • Text (Legacy) → 文本(TextField):含字体、颜色、富文本。
  • TextMeshPro → 文本(TextField):运行时检测 TMP,转换为 FairyGUI 文本,字体回退到设置中的字体;描边/阴影按关键词识别。

交互组件

  • Button → 按钮(Button):保留过渡效果(ColorTint / SpriteSwap),状态图标命名 icon / bg。
  • Toggle → 按钮(Button, mode=Check):选中态图标(selectedIcon)取自 Toggle 的 graphic。
  • Slider → 滑块(Slider):把手(grip)按规则定位,进度条(bar)建立关联。
  • ScrollBar → 滚动条(ScrollBar):对应 FairyGUI 滚动条。
  • ScrollRect → 滚动容器:转换为带 ScrollPane 的组件,不单独抽为组件。
  • Dropdown → 下拉框(ComboBox):展开模板(Template)剥离为独立子组件。
  • InputField → 文本输入(TextInput):对应 FairyGUI 文本输入。

容器 / 列表

  • Horizontal/Vertical/Grid LayoutGroup → list:子项达到阈值时识别为 list,并提取为子组件。

遮罩 / 裁剪

  • RectMask2D / Mask → 遮罩(Mask):两者共用同一套逻辑:作为独立组件边界提取(可配置),组件根设 overflow=hidden 近似矩形裁剪。Mask 的遮罩图(自身 Image)仅在 showMaskGraphic=false 时跳渲染。

顶层结构

  • Canvas → 包(package):每个顶层 Prefab 对应一个 FairyGUI 组件。

八、导出设置面板配置项

设置面板(SkyLad / Export to FairyGUI)的所有配置以项目内 ScriptableObject 形式持久化在 Assets/UGUI_to_FairyGUI/Editor/FairyGUIExporterSettings.asset,按项目隔离、可进版本控制、团队共享。配置项按用途分组如下,括号内为代码字段名,末尾为默认值。

1. 目录与去重

  • 默认 Prefab 根目录 (prefabRoot):设置后导出跳过目录选择,直接使用此路径。(默认:空)
  • 默认导出目录 (exportDir):设置后导出默认输出到该目录。(默认:空)
  • 清理导出的 FairyGUI 目录 (deleteFolders):每次导出前自动清理导出目录中的 image 和 component 文件夹。(默认:关闭)
  • 组件去重 (enableStructuralDedup):启用后把重复 Prefab 合并为可复用组件;冗余实例引用代表组件(未指定时默认引用第一个)。(默认:开启)
  • 导出时重命名重复节点 (renameDuplicateNodes):开启后,导出时发现同级同名 GameObject 自动加 _2 _3 后缀,避免导出中止。(默认:开启)
  • FairyGUI 项目类型 (fairyProjectType):目标平台类型,对应 .fairy 的 type 属性。(默认:Unity)
  • 工作区文件名 (dedupMapFileName):去重编辑器工作区 JSON 的文件名(不含后缀),默认 UGUI_to_FairyGUI_data.json。(默认:UGUI_to_FairyGUI_data)
  • 加载去重编辑器工作区去重配置作为权威 (dedupLoadOverride):开启且配置含有效 dup→rep 映射时,直接以 JSON 的合并结果作为映射(跳过自动重算),并加载变体 / 转换类型 / 跳过规则。(默认:关闭)
  • 组件去重编辑器导出目录 (dedupExportDir):去重编辑器 JSON 与导出产物的目录。(默认:空)
  • Prefab 组件去重级别 (prefabDedupLevel):0=不排重, 1=仅结构, 2=结构+资源, 3=结构+名称, 4=全量。(默认:2,结构+资源)
  • List 子项排重级别 (listItemDedupLevel):与 Prefab 组件去重级别逻辑一致。(默认:2)
  • 自动检测 LayoutGroup 类型 (listAutoDetectFlags):勾选 Horizontal / Vertical / Grid;对应类型子对象达阈值时识别为 list。(默认:三者全开)
  • 最小子对象数 (minListChildCount):子对象数量达到该值才识别为 list;不足时降级为普通 group。(默认:3)
  • 启用变体合并 (enableVariantMerge):开启后,同一骨架、仅颜色/图标/内容/可见性/局部尺寸不同的变体组(list 子项 / 去重变体 / 手动分组)合并为单组件 + variant controller 区分表现;关闭则完全回退「每变体一个独立组件」。组内成员数不限。(默认:关闭)

2. 组件与渲染

  • FairyGUI 字体名称 (fontName):导出文本使用的字体(如 Microsoft YaHei、Arial)。(默认:Microsoft YaHei)
  • 单节点组件坐标归零 (setRootToZero):开启后,仅含一个根节点(无子节点)的组件在 FairyGUI 中 xy 固定为 0,0、尺寸=内容包围盒;关闭则保留原始绝对坐标。(默认:开启)
  • 启用公共包提取 (enableCommonPackage):开启后被多包引用的共享资源归入公共包。(默认:关闭)
  • 公共包包名 (commonPackageName):公共包的名称。(默认:Common)
  • 组件边界提取(可选类型) (extractBoundaryMask):勾选 Slider / Scrollbar / Dropdown / InputField / Toggle / RectMask / Rotation(Z 轴旋转节点)作为独立组件提取。Button / Label / 嵌套组件 / List 强制常开,不可取消。(默认:全开)
  • 导出调试日志 (enableDebugLog):开启后向 Unity 控制台打印逐元素/流程调试信息。写文件日志已彻底关闭,不受此开关控制。(默认:关闭)

3. 文本特效(TMP / 描边阴影)

  • 文本描边默认宽度 (defaultStrokeSize):文本判定需描边但材质/组件未提供明确宽度时使用的宽度(下限 1)。(默认:1)
  • 文本描边默认颜色 (defaultOutlineColor):描边回退色,强制不透明(alpha=255)。(默认:不透明黑)
  • 文本阴影默认颜色 (defaultShadowColor):阴影回退色,强制不透明(alpha=255)。(默认:不透明黑)
  • TMP 描边识别关键词 (tmpOutlineKeyword):当字体资源名/材质名/着色器名(小写)包含此关键词时,判定文本需要描边。(默认:outline)
  • 进度文本自动命名模式 (titleNamingPatterns):逗号/分号分隔的子串列表;含多个文本子节点时按这些模式匹配节点名猜出唯一的 title(如 Slider/ProgressBar 的标题)。(默认:exp,value,progress,hp,mp,fill,num,count,rate,percent,title)

九、组件去重编辑器

菜单 SkyLad / Deduplication Editor 打开。它用于:

  1. 分析所有组件:扫描 Prefab 根目录,找出结构重复组件,生成去重 JSON(含 dup→rep 合并与组件类型 conversionType)。
  2. dup→rep 合并:在编辑器里把结构相同的组指定一个代表组件(rep),其余引用它。
  3. 组件类型指定:为组件设置目标 FairyGUI 类型(Button / Slider / ComboBox 等),可直接下拉选择,也可用下方正则规则批量匹配。
  4. 转换类型正则规则:一组「正则 → 类型」规则,按节点名批量指定组件类型,美术人员一般不关注(默认折叠)。
  5. Prefab 跳过规则:一组正则,匹配到的 Prefab(如 Fx_ 开头的特效)在导出时跳过。
  6. 类型标记机制:每个节点的 FGUI 类型在提取期一次性裁决——Prefab 上挂的 FguiTypeMarker 手动标记优先,否则按结构自动推导;导出阶段只读结果,不再区分 Prefab / Json 两路。可在去重编辑器或 Prefab 上手动指定类型。
  7. 分析时自动给 prefab 添加 fgui 类型标记脚本:开启后,每次「分析所有组件」会自动给类型决策点节点挂 FguiTypeMarker;关闭则分析不修改任何 Prefab 资产。默认关闭。
  8. 尺寸纳入去重指纹 (sizeAffectsDedup):关闭(默认)时去重只看结构 / 资源 / 名称,尺寸不同的同构组件仍合并为一个;开启后每个节点尺寸纳入指纹,仅尺寸不同的同构组件不再合并,各自单独导出。该开关同时作用于 Prefab 组件去重与 List 子项去重两条路径。
  9. 清空所有 FguiTypeMarker:移除 Prefab 上全部类型标记脚本。

分析完成后,去重 JSON 会作为导出时的权威配置(跳过自动重算),并在设置面板自动启用加载。

十、常见问题(FAQ)

Q:转换后是 100% 完美可用的 FairyGUI 工程吗? A:不是。转换器尽力保留布局与交互组件结构,但复杂布局、富文本、动画、事件、自定义 Shader 等需要你在 FairyGUI 编辑器里手动微调。把它当作「省去重建骨架」的起步,而不是最终成品。

Q:为什么要手动干预? A:UGUI 与 FairyGUI 的模型差异导致部分语义无法自动对应(例如 UGUI 的锚点拉伸 vs FairyGUI 的 relation、UnityEvent 事件 vs FairyGUI 事件系统)。这些只能由你在 FairyGUI 里补充。

Q:图片去哪了? A:图片按引用关系拷贝到导出目录的 image 文件夹下。只要原 Sprite 在 Assets/ 下可访问即可,不需放在特定目录。

Q:为什么有些组件没转成我想要的 FairyGUI 类型? A:组件类型默认按结构自动推导;可在 Prefab 上挂 FguiTypeMarker 手动指定,或在去重编辑器里指定类型进行覆写。

Q:转换过程会修改我的原始 Prefab 吗? A:默认不会。除非你开启了「分析时自动给 prefab 添加 fgui 类型标记脚本」,否则分析/导出只读取、不修改原始资产。开启自动标注后,标注器只给决策点节点挂标记、已存在标记不覆盖、不碰 JSON。

十一、注意事项

  1. 坐标与布局:UGUI 的锚点/偏移会转换为 FairyGUI 的绝对坐标 + relation。某些拉伸布局在转换后可能需要手动调整关联规则。
  2. 组件类型判定:list 由「LayoutGroup 类型匹配 + 子对象数量达阈值(默认 3)+ 至少有一个直接子节点自身非叶子 + 直接子项同质(结构粗签名一致,默认要求)」共同判定,否则降级为普通 group(如 icon/text/button 各司其职的控件行会因异质降级);如确需强制为 list,可在 Prefab 上用 FguiTypeMarker 标为 List。交互组件(Slider/Scrollbar/Dropdown/InputField/Toggle/RectMask)可配置是否独立提取,Button/Label/嵌套组件/List 强制按固定规则处理。
  3. 资源路径:图片只需在 Assets/ 下任意位置即可被收集拷贝;内置虚拟资源自动渲染为 PNG 写出;Packages/ 与外部路径资源当前不导出,需手动替换。
  4. 配置持久化:所有导出设置以项目内 ScriptableObject(FairyGUIExporterSettings.asset)保存,按项目隔离、可进版本控制、团队共享,不会写入机器级注册表、不会跨项目串台。首次使用以代码默认值(不自动标注、单节点归零开启等)开始。
  5. 调试日志:关闭「导出调试日志」时调试信息完全静默(仅向控制台打印,且不写文件),不会产生额外开销。
  6. 最低 .NET 4.0(API Compatibility Level ≥ .NET 4.x):本工具的 DLL 以 .NET 4.0 目标编译,要求宿主工程把 Player Settings → Other Settings → Api Compatibility Level 设为 .NET 4.x(而非 .NET 3.5)。若工程为 .NET 3.5,Unity 会拒绝加载该 DLL(报 Plugin targets .NET 4.x ... Editor can only use assemblies targeting .NET 3.5),菜单将不出现。升级到 .NET 4.x 是 Unity 2018.4 起官方推荐的做法,现有代码基本可平滑兼容。
  7. 多版本 DLL 自动选择(商店分发):商店包内含 3 个版本 DLL(Editor/DLLs/{2018,2019,2022}/Skylad.Core.dll),分别由 Unity 2018.4 / 2019.x / 2022.x 编译产出。导入包后,Editor/VersionSelector.cs 会按当前 Unity 版本自动启用「目录主版本号 ≤ 当前 Unity 主版本号」中最大的那个 DLL、禁用其余,确保 Unity 只加载一个(避免类型重复定义)。若自动选择异常,可手动删除 Editor/DLLs/ 下不匹配自己 Unity 版本的子目录。

十二、已知限制

  1. 导出并非 100% 完美,复杂界面通常需要在 FairyGUI 编辑器里手动微调。
  2. 字体:文本导出为 FairyGUI 文本,字体回退到设置中的字体名称;特殊字体特性(如 TMP 的富文本标签子集)会做近似处理。
  3. 富文本与复杂排版(如自动换行、图文混排)会被简化。
  4. 动画、事件绑定、脚本逻辑不在转换范围内,需要在 FairyGUI / 运行时侧重新接入。
  5. 文本换行、对齐方式等按近似规则转换,可能和原 UGUI 有细微差异。
  6. RectMask2D 近似为普通遮罩,复杂遮罩行为可能不完全一致。
  7. 自定义 Shader、材质特效、粒子等不被处理。
  8. TextMeshPro 的特殊功能(如链接、表情、自定义材质)不支持;描边/阴影仅按关键词近似识别。

十三、许可证

本工具以编译后的程序集(DLL)形式分发,授权受 Unity Asset Store 标准 EULA 约束,不单独提供源码修改授权。

十四、更新日志


v1.0.2

  1. 输出目录名大小写可选项(新功能):设置面板新增「输出目录名大小写」下拉(小写 / 首字母大写 / 全大写),控制导出包目录(Panels/Buttons/Common 等)与内部目录(component/image/subcomponent)的命名大小写,适配不同平台与团队的目录约定。切换后需重新导出,才能让写盘路径、组件引用、package.xml 三处路径一致。
  2. 纯图标子组件内联:内部仅含单一 loader / image 的纯图标子组件(如 Prev/Next 箭头、纯图标按钮)直接内联为 loader,不再抽成独立子组件再嵌回,避免结构冗余与引用丢失;带 title 文本或 Slider/Toggle 等复合结构的完整 Button/Label 不会被误判为纯图标。
  3. icon 节点默认命名:Button / Label / Toggle / ComboBox / Graph 转 xml 时,默认按角色、节点名、精灵名、结构顺序启发式寻找并命名为 icon 节点(detector 未识别时自动兜底),避免 icon 节点丢失导致状态图标不生效。
  4. 坐标位置修复:非拉伸、pivot 居中且 anchoredPosition 非零的多节点根(画廊类组件)内容整体偏移的问题已修复,子节点坐标归零对齐组件原点,避免放进舞台后整体错位。
  5. 文件名 / 节点名清洗:导出时自动清洗组件名、节点 name、文件名中的 ()[]() 等特殊符号,避免转成代码变量名时非法导致导出失败或命名冲突。


v1.0.1

  1. 滑块 / 滚动条 / 进度条导出修复:修复进度条填充未被正确识别、内部结构错位等问题,导出结果更符合预期。
  2. 去重残留清理:重新分析时自动清除已不存在的旧子组件,避免重复或多余导出。
  3. 列表子项布局优化:LayoutGroup 开启 childControlSize 时,子元素不再附加 sidePair 对齐关系,子项尺寸交由布局自动接管,列表排布更贴合预期。

更早版本日志:

  • v1.0.0变体合并(长得一样的多个组件 → 合成一个,但能实时变脸)
  • v0.9.0:最低已经支持Unity 2018.4 .NET 4.0;
  • v0.8.0:支持中英文界面;部件角色识别统一;滑块手柄导出为按钮子组件;组件背景自动跟随拉伸;普通 Mask 正确导出;一批列表/嵌套坐标 bug 修复;去重更精细(按资产名细分、尺寸开关);组件提取可配置;描边与阴影可配置。
  • v0.7.0:带 Z 轴旋转的节点正确导出(旋转作为独立组件保留)。
  • v0.6.0:新增「尺寸纳入去重指纹」开关;优化子节点命名规则;修复嵌套组件/遮罩子项尺寸坐标异常。
  • v0.5.0:导出配置保存在项目内(团队共享);新增文本描边/阴影导出;修复字体颜色(含半透明)丢失;按钮命名/Toggle 图标完善;组件 ID 稳定。
  • v0.4.0:新增组件去重编辑器(合并重复组件、指定类型);自动检测 TMP 与 Legacy Text;支持公共包提取;嵌套 Prefab 提取复用。
  • v0.3.0:完善列表子组件提取与排重;完善 Slider / ScrollBar / Dropdown / InputField 导出。
  • v0.2.0:基础 UGUI → FairyGUI 结构映射;Button / Toggle 状态与过渡效果导出。
  • v0.1.0:初始版本,支持基础 Prefab 扫描与图片收集。

ugui_to_fairygui

资源商店评分
(暂无评分)
国内数据
93浏览
1收藏
当前价格
¥283.50
¥405
30% OFF
已享受 平台补贴
席位
仅支持将资源分配给中国区用户,其他区域账号暂不支持
许可证类型
如对许可证类型有疑问,请查阅EULA
席位
文件大小
572.4 KB
最新版本
1.0.2
最新发布日期
2026-08-26
支持Unity版本
2020.1.0f1c1或更高
支持的团结引擎版本
1.0.0或更高
发布者支持
support@skylad.com