今天课有点多,还要交作业,进度有点慢

多语言设置

继DAY1完成的 Localization 的配置,继续完成多语言设置

创建字符表

  1. 在顶部菜单选择 Window -> Asset Management -> Localization Tables
  2. “Type”选择String Table Collection——因为只需要更换文字;“Name”修改为MainMenuUI_Text
  3. 点击 Create 按钮,创建一个新的字符表
  4. 在出现的类似 Excel 的表格中
    1. 点击 Add New Entry
    2. Key: 输入 MainMenu_Start
    3. 对应的语言部分输入所需呈现的文字
      Localization 字符表配置

使用字符表

  1. 在需要文字的实体找到 TMP 子物体
  2. 在 TMP 子物体的 Inspector 面板找到 **TextMeshPro - Text (UI) **组件
  3. 此组件窗口边框的右侧有三个小点,点击并选择Localize,会自动为此 TMP 组件添加 Localize String Event 组件
  4. 在新加的组件里,打开String Reference的下拉菜单,选择对应的翻译 Key
    Localization 字符表使用

字体的导入

在上一步完成后,所有的中文字体都只会显示为”口”,解决此问题需要导入字体资产,字体资产的选择要注意版权问题,个人开发者应当选择免费商用字体,这里以**阿里巴巴普惠体 (Alibaba PuHuiTi)**为例

  1. 打开网页:https://www.alibabafonts.com/#/font
  2. 下载阿里巴巴普惠体3.0阿里巴巴普惠體TC(没有统一的繁体,选择使用人数更多的台湾繁体字)
  3. 解压ttf字体到Assets->Fonts文件夹
  4. 顶部菜单栏:Window -> TextMeshPro -> Font Asset Creator,按如下选择参数
    • Source Font File: 选中字体文件文件
    • Sampling Point Size: 选 Auto Sizing
    • Padding: 5 (这是为了给描边或阴影留空间)
    • Packing Method: Fast
    • Atlas Resolution: 4096 x 4096(因为中文字符非常多,给大一点,避免贴图放不下)
    • Character Set:选择Characters from File
    • Character File:我是在 https://gitcode.com/open-source-toolkit/69526 下载的2万字的txt文件
  5. 其余的保持默认,点击Generate Font Atlas,完成后在Assets->Fonts文件夹下保存

实现字体的自动切换

搜了很多方法,最终选择使用Localization配合资产预制体解决

  1. 先创建接下来需要大量使用的内容的基础预制体,比如此处需要菜单的按钮,所以先创建一个Button预制体
    1. 右键->UI->按钮 - TextMeshPro
    2. 直接将创建好的按钮拖到Assets->Prefabs文件夹下
    3. 双击打开预制体,准备开始配置
  2. 打开windows->Asset Management->Localization Scene Controls
  3. 勾选弹出界面中的Track Changes,同时注意Active Locale里面选择的是什么类型的语言
  4. 在预制体的TextMeshPro - Text (UI)组件中,打开Font Asset的下拉菜单,选择此时的语言应当对应的的字体资产,此操作要重复多次,直到所有语言都有对应的字体资产
    Localization 字体配置
  5. 完成后先关闭Track Changes,然后运行测试是否能正确切换
  6. 测试无误后,以此预制体为基础创建菜单,即可省去重复配置的步骤