Unity游戏实时翻译插件XUnity.AutoTranslator:从原理到实战的完整指南

📅 2026/7/9 22:32:01
Unity游戏实时翻译插件XUnity.AutoTranslator:从原理到实战的完整指南
1. 项目概述XUnity.AutoTranslator是什么以及它能为你做什么如果你是一位热爱日系或独立Unity游戏的玩家或者是一位需要处理多语言文本的Mod开发者那么你很可能遇到过语言障碍的烦恼。游戏内置的文本是日语、韩语或其他你不熟悉的语言而官方又没有提供中文翻译。手动替换游戏文件不仅麻烦而且每次游戏更新都可能失效。这时候一个强大而优雅的解决方案就显得尤为重要——XUnity.AutoTranslator以下简称XUAT正是为此而生。简单来说XUAT是一个运行在游戏进程内的“实时翻译插件”。它不像传统汉化补丁那样直接修改游戏资源文件而是采用了一种更高级的“钩子”Hooking技术。当游戏引擎Unity试图在屏幕上绘制一段文本时XUAT会拦截这个请求将原始文本比如日文发送给你配置好的翻译服务如谷歌翻译、百度翻译、DeepL等或者从你预先准备好的翻译文件中查找匹配项然后将翻译后的文本比如中文替换上去再交给游戏引擎显示。整个过程对游戏本身是透明的你看到的就是实时翻译后的结果。它的核心价值在于“动态”和“可扩展”。动态意味着它无需破解游戏包体兼容性极强理论上支持所有基于Unity引擎的游戏无论是Steam上的大作还是一些小众的独立游戏。可扩展则体现在它不仅仅是一个翻译器更是一个平台它支持用户手动编辑翻译文件进行精校支持替换游戏内的图片如UI图标、按钮甚至允许开发者为其编写新的翻译器插件或资源重定向插件。对于Mod作者而言它提供了API让你自己的Mod界面也能轻松接入这套翻译体系。从技术角度看XUAT巧妙地利用了Unity的组件系统和C#的反射/注入能力。它主要挂钩Hook了UnityEngine.UI.Text、TextMeshProUGUI以及传统的GUIText、OnGUIIMGUI等文本渲染组件。当这些组件的text属性被设置时XUAT的代码就会介入执行翻译查询和替换逻辑。这种在运行时进行干预的方式使得它具备了传统静态汉化难以比拟的灵活性和适应性。2. 核心需求解析为什么你需要它以及它解决了哪些痛点在深入配置之前我们首先要明确XUAT瞄准的是哪些具体场景和需求。理解这些能帮助你在后续使用中做出更合理的决策。2.1 玩家视角打破语言壁垒的终极工具对于普通玩家核心痛点非常直接“我想玩这个游戏但我看不懂。”传统解决方案要么是等待民间汉化组发布补丁周期长可能烂尾要么是使用外部OCR截图翻译工具操作繁琐体验割裂。XUAT提供了第三种也是目前最优雅的解决方案实时性游戏内文本出现即翻译无需切换窗口或手动操作。无侵入性不修改游戏原始文件不影响游戏更新也极大降低了因修改文件导致游戏崩溃的风险。高度可定制你可以选择不同的翻译引擎谷歌、百度、DeepL等可以手动修正机器翻译的生硬之处甚至可以针对特定游戏优化翻译规则如专有名词替换。成本极低大部分在线翻译API都有免费额度对于个人游玩完全足够。即使需要手动翻译也只需编辑文本文件无需编程知识。2.2 Mod开发者/汉化组视角高效的生产力工具对于想要为游戏添加多语言支持或制作汉化Mod的开发者XUAT解决了更复杂的工程化问题文本提取与管理XUAT可以自动将游戏内出现的所有文本导出到_AutoGeneratedTranslations.txt文件中。这相当于自动生成了一个完整的“待翻译词条库”汉化组可以直接在此基础上进行翻译和校对效率远高于手动从游戏文件中挖掘文本。翻译缓存与复用翻译过的文本会被缓存。下次游戏运行时相同的文本将直接使用缓存无需再次请求在线API。这不仅加快了加载速度也节省了API调用次数。你可以将这份缓存文件分享给其他玩家实现“离线汉化包”的效果。资源重定向这是XUAT一个非常强大的高级功能。它不仅能翻译文本还能替换游戏内加载的资源比如TextAsset文本资源、Texture2D贴图等。这意味着你可以直接替换游戏内的图片字体、UI图标甚至剧情脚本文件实现真正深度的本地化而这一切同样是在运行时动态完成的不破坏原始游戏文件。插件生态集成XUAT提供了完善的API。如果你开发的Mod有自己的UI界面你可以通过API查询XUAT的翻译结果或者告诉XUAT不要翻译你的UI控件避免冲突。这为构建一个统一的多语言Mod生态奠定了基础。2.3 技术研究者的视角一个绝佳的Unity运行时行为研究案例即使你不玩游戏XUAT本身也是一个非常有趣的技术项目。它涉及运行时代码注入通过BepInEx、IPA等Mod框架实现。Harmony/MonoMod库的使用用于挂钩HookUnity引擎的内部方法。异步网络请求处理在游戏主线程中安全地进行HTTP调用。Unity UI系统深度交互处理UGUI、TextMeshPro、IMGUI等多种UI框架。资源加载流程拦截通过XUnity.ResourceRedirector库实现对Resources.Load和AssetBundle.LoadAsset等核心方法的监听和修改。研究XUAT的源码和实现方式对于理解Unity Mod开发、运行时程序集修改、以及设计高扩展性的插件系统都有很大帮助。3. 环境准备与安装部署理论讲完我们开始实战。要让XUAT运行起来你需要一个“土壤”也就是Mod加载器。XUAT本身是一个插件Plugin它需要依赖一个宿主框架来注入到游戏进程中。目前主要支持以下三种方式请根据你的游戏所使用的Mod框架来选择。3.1 选择并安装Mod加载器BepInEx / IPA / ReiPatcherBepInEx (推荐): 目前最流行、最通用的Unity游戏Mod框架社区支持最好。绝大多数Unity游戏Mod都基于它。如何判断查看游戏根目录是否有BepInEx文件夹或者Mod发布页面是否要求安装BepInEx。安装从BepInEx的GitHub发布页下载对应版本通常为x64版本。将压缩包内所有文件解压到游戏根目录即包含GameName.exe的文件夹。验证运行一次游戏关闭后查看是否生成了BepInEx\plugins、BepInEx\config等文件夹。IPA: 主要用于一些特定的日系游戏如ILLUSION社的部分作品。ReiPatcher: 较老的注入器现在较少使用。注意请务必使用与游戏位数32位或64位匹配的BepInEx版本。通常现代游戏都是64位的。如果不确定可以尝试运行游戏查看任务管理器中的进程名后面是否带有“(32位)”字样。3.2 安装XUnity.AutoTranslator插件下载前往XUnity.AutoTranslator的GitHub Releases页面下载对应你Mod加载器的版本。例如如果你用BepInEx 5.x就下载XUnity.AutoTranslator-BepInEx-5.x-{VERSION}.zip。解压将压缩包内的所有文件和文件夹解压到游戏根目录。关键结构如下游戏根目录/ ├── BepInEx/ │ ├── plugins/ │ │ └── XUnity.AutoTranslator/ (核心插件文件夹) │ │ ├── AutoTranslator.dll │ │ ├── config.ini │ │ └── Translation/ (翻译文件目录) │ └── patchers/ (可能包含ResourceRedirector的补丁器) ├── doorstop_config.ini (BepInEx配置文件) └── GameName.exe确认依赖确保XUnity.Common.dll和XUnity.ResourceRedirector.dll等依赖库也被正确放置。通常官方发布的整合包都已包含。3.3 首次运行与基础配置安装完成后首次运行游戏。XUAT会在后台初始化并在BepInEx\plugins\XUnity.AutoTranslator目录下生成或更新config.ini这个核心配置文件。同时在Translation文件夹下会根据你游戏的语言环境生成对应的子文件夹如Translation\zh-CN\Text并开始记录遇到的未翻译文本到_AutoGeneratedTranslations.txt中。游戏内你可以通过快捷键进行基本操作ALT0: 打开翻译器选择菜单切换不同的翻译服务如GoogleTranslate, BaiduTranslate等或禁用自动翻译。ALTT: 全局切换翻译功能的开启/关闭。当你发现翻译导致UI错乱或想看原文时非常有用。ALTR: 强制重新加载所有翻译文件。在你手动编辑了翻译文本后按此键无需重启游戏即可生效。如果游戏运行后没有任何反应或者出现错误弹窗请检查BepInEx是否正确安装并运行查看游戏根目录下的LogOutput.log或BepInEx\LogOutput.log。XUAT的版本是否与BepInEx版本兼容。游戏是否使用了特殊的反作弊或加密手段这类游戏通常任何Mod都无法运行。4. 核心配置详解从新手到高手的进阶之路config.ini是XUAT的大脑所有行为都由它控制。这个文件结构清晰但选项繁多。我们将其拆解为几个核心模块逐一攻破。4.1 [General] 基础设置告诉插件你是谁要做什么这是最关键的启动配置部分。[General] Languagezh-CN SourceLanguageja EndpointGoogleTranslateLanguage:目标语言。即你想翻译成的语言。必须使用标准的语言代码如zh-CN简体中文、en英文、ja日文等。这个设置直接影响翻译API的请求和翻译文件的存储路径。SourceLanguage:源语言。即游戏文本的原始语言。插件会尝试自动检测但为了更高的准确率建议手动指定。例如多数日系游戏设为ja。Endpoint:翻译终端。选择使用哪个翻译服务。可选值包括GoogleTranslate谷歌翻译、BaiduTranslate百度翻译、DeepLTranslateDeepL、BingTranslate必应翻译等。留空或设为None则禁用在线翻译仅使用本地翻译文件。实操心得对于国内用户BaiduTranslate通常是速度和稳定性综合最好的选择因为它服务器在国内。GoogleTranslate需要网络环境支持。DeepL的翻译质量公认较高尤其对于欧洲语言但可能有速率限制。你可以都试试看哪个在你网络环境下表现最好。4.2 [Behaviour] 行为控制精细化管理翻译过程这个区块控制着翻译插件的核心逻辑。[Behaviour] EnableTranslationTrue MaxCharactersPerTranslation400 EnableBatchingTrue EnableUIResizingTrue TextGetterCompatibilityModeFalseEnableTranslation: 总开关。MaxCharactersPerTranslation:单次翻译最大字符数。这是极其重要的安全设置。在线翻译API通常有单次请求的长度限制。设置过大如超过1000可能导致请求被拒绝或翻译质量骤降。官方强烈建议如果你要分享你的配置和翻译文件此值不要超过400以避免对翻译服务器造成过大压力。EnableBatching:启用批处理。当开启时插件会尝试将多个短文本合并成一个请求发送给翻译API能显著减少请求次数提升效率。建议开启。EnableUIResizing:启用UI自动重设大小。翻译后的文本长度很可能与原文不同可能导致文本框显示不全文字被截断。开启此选项后插件会尝试自动调整UI组件如Text、TextMeshPro的尺寸、换行方式等属性来适应新文本。对于大多数游戏建议开启。TextGetterCompatibilityMode:文本获取器兼容模式。有些游戏逻辑会检查屏幕上显示的文本来决定下一步行为例如根据选项按钮的文字执行不同分支。如果开启翻译后游戏逻辑出错可以尝试开启此选项。它会让游戏“以为”显示的仍是原文从而绕过这类检查。4.3 [Texture] 纹理图片翻译替换游戏内图像这是实现“全界面汉化”的关键功能可以替换游戏内的UI图标、按钮图片等。[Texture] EnableTextureTranslationFalse EnableTextureDumpingFalse TextureDirectoryTranslation\Texture TextureHashGenerationStrategyFromImageNameEnableTextureTranslation: 启用纹理翻译。开启后插件会尝试从TextureDirectory目录加载图片替换游戏内对应的纹理。EnableTextureDumping:启用纹理转储。这是一个开发/汉化专用功能。开启后游戏运行时会将其加载的所有纹理图片自动截图并保存到TextureDirectory目录下文件名会包含一个用于标识的唯一哈希值。重要制作完汉化纹理包后分发时务必将此选项设为False否则用户每次运行游戏都会重复转储图片严重影响性能并产生大量垃圾文件。TextureHashGenerationStrategy:哈希生成策略。决定如何识别和匹配游戏内纹理。FromImageName(默认): 基于游戏内部资源名生成哈希。性能最好是分发时的推荐选项。但少数纹理可能没有内部名。FromImageData: 基于图片像素数据生成哈希。最准确能匹配所有纹理但性能开销大仅当FromImageName失效时考虑。FromImageNameAndScene: 结合资源名和场景名生成哈希。折中方案可能产生重复哈希不推荐。4.4 在线翻译服务配置要使用在线翻译你需要在对应区块配置API密钥如果需要的话。[Google] ; 通常无需配置使用公共API。但稳定性可能不佳。 ServiceUrl ; 可自定义服务地址用于特殊网络环境 [Baidu] BaiduAppId你的App ID BaiduAppSecret你的App Secret [DeepL] ApiKey你的DeepL API密钥 FreeFalse ; 如果你用的是DeepL免费版API设为True百度翻译需要去百度翻译开放平台注册创建通用翻译服务获取App ID和密钥。它有每月免费字符额度个人使用足够。DeepL需要注册DeepL API计划有免费版获取API密钥。谷歌翻译公共API无需密钥但访问可能不稳定。如果无法使用可以尝试在ServiceUrl中配置可用的反代地址此操作需自行寻找可靠服务并注意合规性。注意事项切勿在公开场合如论坛、GitHub泄露你的API密钥config.ini文件通常可以分享但务必在分享前删除其中的个人密钥信息。5. 翻译文件管理与手动精校XUAT的强大之处在于它不只是一个“机翻盒子”更是一个完整的翻译管理平台。所有翻译条目最终都存储在文本文件中这意味着你可以进行完全的手动控制和精细化校对。5.1 翻译文件的加载机制与优先级XUAT会扫描Translation\{Language}\Text目录例如Translation\zh-CN\Text下的所有.txt文件。它遵循一套明确的优先级规则插件特定翻译(Plugins\子目录): 优先级最高。普通手动翻译文件(*.txt): 优先级次之。自动生成文件(_AutoGeneratedTranslations.txt): 优先级最低。这意味着如果你在MyManualTranslations.txt中为某个句子提供了翻译即使_AutoGeneratedTranslations.txt里有机器翻译的版本游戏也会显示你手动提供的版本。这为“机翻打底人工润色”的工作流提供了完美支持。5.2 手动翻译的格式翻译文件的格式非常简单每一行就是一条映射原文译文例如こんにちは你好 プレイヤー玩家更强大的是它支持正则表达式Regex可以处理一些动态文本。r:^獲得経験値\([0-9])$获得经验值$1这条规则会将“獲得経験値100”翻译为“获得经验值100”其中的([0-9])是捕获组$1在译文中引用它。5.3 高级功能替换Substitution与分割器Splitter替换Substitution: 在翻译前对原文进行预处理。例如游戏里角色名“アリス”被机翻成“爱丽丝”但你知道应该翻译成“爱莉丝”。你可以在_Substitutions.txt需在config.ini中启用中写アリスアリス看起来是原文替换原文没错这样做的效果是插件会记住“アリス”是一个需要整体替换的单元在生成自动翻译时它会将“アリス”作为一个参数{{A}}保留从而避免翻译API将其错误拆分翻译。后续在手动翻译文件中你可以写私は{{A}}ですI am {{A}}这样“私はアリスです”就会被正确翻译为“I am アリス”而不是“I am Alice”。分割器正则Splitter Regex, sr:: 用于处理游戏将多个文本拼接后显示的情况。例如游戏显示“01 シンプルリング”01 简单戒指。如果只翻译“シンプルリング简单戒指”是没用的因为游戏传来的完整文本是“01 シンプルリング”。这时可以写sr:^([0-9]{2}) ([\S\s])$$1 $2这个正则会将文本按“数字空格其他”的模式分割成两部分$1和$2然后分别对$2即“シンプルリング”进行翻译查找最后再组合成“01 简单戒指”显示。5.4 字体替换解决缺字显示方块问题翻译成中文后游戏自带的字体可能不包含中文字符导致显示为“口口口”。XUAT提供了字体覆盖功能。[Behaviour] OverrideFontTextMeshProFonts Materials/LiberationSans SDF对于TextMeshPro现代Unity游戏常用你可以指定一个备用字体。你需要一个包含目标语言字符的TMP字体资源.asset文件。一些社区项目如sorrowmoil-MoeFont-for-XUnity.AutoTranslator提供了预制的字体AssetBundle可以下载后放入游戏目录并在此处配置其资源路径。实操心得手动翻译是一个持续的过程。建议的流程是1) 用在线翻译玩一段时间让插件生成_AutoGeneratedTranslations.txt2) 将其中翻译生硬、错误的关键句子如角色名、技能名、重要术语复制到新的ManualFix.txt文件中进行修正3) 遇到UI显示不全时配合EnableUIResizing和后续会讲到的UI Resizer文件进行调整。这样既能快速体验游戏又能逐步提升翻译质量。6. 高级特性与疑难排错当你熟悉了基本操作后以下高级功能可以帮你解决更复杂的问题或实现更精细的控制。6.1 UI重设大小与字体控制即使开启了EnableUIResizing有些游戏的UI布局非常死板自动调整可能失效。这时可以使用UI Resizer文件进行手动控制。在Translation\{Lang}\Text目录下创建一个以.resizer.txt结尾的文件例如UI_Fixes.resizer.txt。在文件中写入规则。你需要知道目标UI组件的完整路径。可以通过开启EnableTextPathLoggingTrue然后在游戏中触发文本变化查看BepInEx的控制台日志来获取路径。规则格式组件路径命令Canvas/Panel/Button/TextChangeFontSizeByPercentage(0.8);AutoResize(true, 12, 36)这条规则将选中路径下所有文本组件的字体大小调整为原来的80%并启用自动调整大小最小字号12最大字号36。6.2 翻译作用域Scoping如果你在为一个包含多个可执行文件如本体、DLC、特典的游戏制作翻译或者想针对特定场景应用特殊翻译可以使用作用域指令。 首先在config.ini中启用[Behaviour] EnableTranslationScopingTrue。 然后在翻译文件中使用指令#set exe Game_DLC.exe DLC专用文本DLC Specific Text #unset exe Game_DLC.exe这样这条翻译只会在运行Game_DLC.exe时生效。同理#set level可以用于指定场景ID。6.3 常见问题与解决方案实录在实际使用中你一定会遇到各种问题。以下是我踩过坑后总结的速查表问题现象可能原因解决方案游戏启动崩溃或闪退1. BepInEx/XUAT版本与游戏不兼容。2. 与其他Mod冲突。3. 游戏使用了Mono以外的运行时如IL2CPP而XUAT支持不完全。1. 尝试更新/降级BepInEx和XUAT到其他版本。2. 暂时移除其他Mod单独测试XUAT。3. 对于IL2CPP游戏尝试使用AutoTranslator.IL2CPP.BruteForceFix辅助插件。查看官方文档的IL2CPP支持说明。翻译完全不显示1. 源/目标语言设置错误。2. 在线翻译API无法访问网络问题。3.Endpoint配置错误或为空。4. 游戏文本渲染方式特殊未被钩住。1. 检查config.ini中的Language和SourceLanguage。2. 按ALT0切换到其他翻译服务如Baidu测试或检查网络。3. 确认Endpoint已设置如GoogleTranslate。4. 尝试开启EnableIMGUITrue如果游戏用旧版IMGUI或检查日志看是否有hook错误。翻译显示延迟或卡顿1. 在线翻译API响应慢。2.MaxCharactersPerTranslation设置过大单次翻译耗时久。3. 启用了性能开销大的功能如纹理转储。1. 换用更快的API如国内用百度或使用本地翻译文件离线模式。2. 将该值降低到200-400。3. 确保分发/正常使用时EnableTextureDumping、LoadUnmodifiedTextures等选项为False。翻译后游戏逻辑出错(如选项点击无效)游戏代码通过检查UI文本来决定逻辑分支。在config.ini中设置[Behaviour] TextGetterCompatibilityModeTrue。中文显示为方块口口口游戏字体不含中文字形。1. 尝试启用[Behaviour] EnableUIResizingTrue有时能触发字体回退机制。2. 对于TextMeshPro配置OverrideFontTextMeshPro或FallbackFontTextMeshPro指向一个含中文的TMP字体资源。纹理图片替换不生效1.EnableTextureTranslation未开启。2. 纹理哈希策略不匹配。3. 图片文件未放在正确目录或哈希值不对。1. 确认配置已开启。2. 如果使用FromImageName不生效尝试改为FromImageData注意性能。3. 开启EnableTextureDumping和EnableTextureScanOnSceneLoad进入游戏相关场景查看TextureDirectory下是否生成了对应图片。用生成的图片文件进行替换修改。自动生成的翻译文件为空或内容很少1. 游戏文本可能以非标准方式加载如图片文本、自定义组件。2. 插件未能成功挂钩文本组件。1. 尝试开启[Behaviour] EnableIMGUITrue。2. 检查BepInEx日志看是否有错误信息。3. 对于非常规游戏可能需要等待社区发布针对该游戏的特定补丁或Resource Redirector规则。6.4 性能优化与最佳实践翻译缓存是核心首次游玩时插件会在线翻译并缓存结果到_AutoGeneratedTranslations.txt。之后游玩或分享给他人时绝大部分翻译都会直接读取本地文件速度极快且不消耗API额度。务必妥善保管和分享这个文件。慎用纹理功能纹理替换功能非常强大但EnableTextureDumping转储和TextureHashGenerationStrategyFromImageData按数据哈希会带来显著的性能开销和内存占用。仅在制作汉化包时开启完成后务必关闭。正则表达式谨慎使用虽然强大但滥用正则表达式尤其是复杂或全局匹配的正则会在文本匹配时造成性能瓶颈。尽量使用精确匹配仅在必要时使用正则并确保其尽可能精确。管理翻译文件随着游戏进程_AutoGeneratedTranslations.txt会越来越大。定期清理其中无意义的、重复的或错误的条目可以提升插件加载速度和匹配效率。将确认无误的翻译移动到独立的手动翻译文件中也是一个好习惯。7. 开发者视角扩展与集成对于Mod开发者XUAT不仅仅是一个工具更是一个可以集成到你项目中的库。7.1 为你的Mod添加多语言支持如果你的Mod有自己的UI你可以通过XUAT的API直接获取翻译而不是自己再造一套轮子。using XUnity.AutoTranslator.Plugin.Core; public class MyMod : BaseUnityPlugin { void Start() { string originalText Welcome to My Mod!; // 异步翻译查询 AutoTranslator.Default.TranslateAsync(originalText, result { if(result.Succeeded) { string translatedText result.TranslatedText; // 使用 translatedText 更新你的UI myUITextComponent.text translatedText; } }); // 或者同步查询缓存更快 if(AutoTranslator.Default.TryTranslate(originalText, out string cachedTranslation)) { myUITextComponent.text cachedTranslation; } } }7.2 防止XUAT翻译你的Mod界面有时你可能不希望XUAT干扰你的Mod UI。有两种方法命名约定将你的UI GameObject名称中包含XUAIGNORE忽略此物体或XUAIGNORETREE忽略此物体及其所有子物体XUAT会自动跳过它们。API调用在渲染你的IMGUI时临时禁用XUAT。void OnGUI() { GameObject xua GameObject.Find(___XUnityAutoTranslator); try { xua?.SendMessage(DisableAutoTranslator); // 绘制你的GUI GUILayout.Label(My Mod Control Panel); } finally { xua?.SendMessage(EnableAutoTranslator); } }7.3 实现自定义翻译器如果现有的翻译服务都不满足需求比如你想接入某个私有翻译API你可以实现ITranslateEndpoint接口来创建自己的翻译器插件。你需要创建一个类库项目引用XUnity.AutoTranslator.Plugin.Core.dll实现接口中的Id、FriendlyName、Initialize和Translate方法。编译后的DLL放入游戏的BepInEx\plugins\XUnity.AutoTranslator\Translators目录即可被自动加载。官方文档中提供了基于HttpEndpoint基类实现Yandex翻译的完整示例是极好的参考。7.4 使用Resource Redirector进行深度资源修改XUnity.ResourceRedirector是一个与XUAT分离但捆绑发行的强大库。它允许你在游戏加载任何资源纹理、音频、文本资产、预制体等时进行拦截和修改。这超出了单纯文本翻译的范畴可以实现模型替换、音频替换、脚本修改等深度Mod功能。其API提供了AssetLoading、AssetLoaded、ResourceLoaded等钩子让你能在资源加载的不同阶段介入。这是为高级Modder准备的武器需要你对Unity的资源加载流程有较深理解。XUnity.AutoTranslator从一个简单的实时翻译工具已经成长为一个功能极其丰富的Unity游戏本地化运行时框架。对于玩家它提供了近乎无缝的语言切换体验对于汉化者它提供了从提取、翻译、测试到分发的完整流水线对于开发者它则打开了一扇通往Unity运行时修改和国际化集成的大门。掌握它意味着你掌握了为任何Unity游戏“赋予新声”的能力。