【Unity】Localization踩坑笔记

背景

我所使用的Unity在Windows的PC端上进行开发,而Build目标是IOS端。前段时间我在我自己的家里建立了局域网文件管理流水线,来自动化Unity->XCode->Apple Store Connect的过程。

而有一天,我想让我的游戏支持多门语言。引入本地化(Localization)资产。
但发生了不少错误。
经过漫长的学习后,做此笔记来帮助后人排忧。
[sc name="info_blue" title="游戏相关" ]英文,中文,日文,韩文[/sc]

主要有以下两类问题:

第一种问题:Localization组件在IOS端运行时抛出异常

这大概率是因为Localization的依赖:Addressables的代码被过度优化(Stripped)导致函数缺失了。

在游戏Asset文件夹下加入link.xml来阻止Unity对Addressables进行优化,link.xml文件内容:

<linker>
<assembly preserve="all" fullname="Unity.Addressables"/>
<assembly preserve="all" fullname="Unity.ResourceManager"/>
</linker>

 

第二种问题:Localization在初始化时抛出null(无Locale设定)

这说明第一个问题解决了。Localization可以正常工作了。
但Localization去访问本地资源的时候没找到Locale文件。

这是因为Localization的所有资源都是用Addressables来管理的,而你没有去设置Addressables。方法如下:

[sc name="quote-black" ]Window -> Asset Management -> Addressables -> Groups -> Build -> New Build -> Default Build Script[/sc]

总结

Localization能有什么坏心思呢,出问题就先思考是不是Addressables哪里不对了。

 

给TA充电
共{{data.count}}人
人已充电
Unity软件

【Unity】版本升级后需要对工程做的事情

2021-12-16 11:38:35

Unity编程软件

【Unity】构建圆角立方体

2022-1-15 2:12:36

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
搜索