【Code With SOLO】用 SOLO 做了一个Unity超方便的本地化插件

提前叠甲:此工具覆盖面其实比较小众,并不适合所有人,这是针对于本人遇到的难点开发的小工具,适合本人的工作流。

这次要分享的是一个“全局本地化工具”解决我在实际游戏开发中遇到的一个问题:

UI TEXT文本FUNGUS插件(一个Unity用于做剧情逻辑、分支等功能的插件 虽然已经弃用退出资源商城 但由于我用的早 且转用其他插件需要学习成本 遂坚持使用)走本地化流程是不一样的方法,管理两套本地化逻辑很麻烦(而且我也不喜欢配表导入,我希望所有的开发都是在Unity内完成),所以使用了TRAE SOLO开发了一个小工具。:magic_wand:

在这个工具中,可以添加单个场景,也可以扫描整个项目的所有场景、以及添加特定的文件夹批量场景。添加好场景后这个工具可以自动查询场景中的UI组件以及FUNGUS特有的FLOWCHART BLOCK的SAY命令(FlowChart为流程控制、Block是“块” 可以理解为关卡中的一个小节、Say命令就是这个小节中的一个指令。)

如图片左下角显示,它已经成功扫描到已选中场景的所有文本内容

图片右下角的条目详情则显示这条文本来源于哪里(是UITEXT还是Say命令),然后具体的文本内容、多语言版本

这套工具的核心是一个 ScriptableObject 形式的本地化数据库,用来承载所有语言配置和文本条目。

运行时部分我做了一个 GlobalLocalizationService 。它是常驻跨场景的语言服务,会持有当前激活语言,并负责在语言切换时刷新所有已加载场景里的本地化对象。同时它还监听场景加载事件,所以在主菜单切换语言之后,进入下一个场景时,新场景里的 UI 和 Fungus 对话也会自动套用当前语言。语言状态也会通过 PlayerPrefs 持久化,所以重新进入流程时依然能保持用户上一次选择。

以下为实现截图

简单说,这个工具做的事情不是单纯“给文本加个翻译表”,而是把:

文本扫描、文本收集、数据承载、编辑器管理、运行时切换、跨场景同步、导入导出协作这几件原本分散的事情,做成了一整套完整流程。

本质上它解决的是 Unity 项目里最常见的本地化痛点:文本来源分散、流程割裂、跨场景状态不统一、后期维护成本越来越高。

希望大家能够喜欢!也给我点上一票~

也希望Trae社区有更多游戏开发内容!有更多愿意分享游戏开发工具的老师!