简介
- 官方API:http://www.inter-illusion.com/assets/I2LocalizationManual/I2LocalizationManual.html
- 意义:更改游戏语言(多语言支持)
快速上手
-
插件安装:
- 直接拖拽进Unity即可
-
创建语言源(Creating a Language Source):
- 方法一: 双击Assets \ Resources \ I2Languages.asset(全局起作用)
- 方法二:在场景中创建一个新的 GameObject 并添加一个 Language Source 组件(I2 \ Localization \ Source )(整个场景起作用)
-
添加语言(Adding Languages)
-
在 LanguageSource 编辑器中,选择**“语言(Languages)”选项卡**
-
点击底部**Abkhazian[ab]**选择语言—>点击Add;
-
-
添加术语(Adding Terms)
方式一:本地添加
-
选择**术语(Terms )**选项卡
-
单机**“+”按钮,输入Terms **然后创建键
-
对应位置输入文本
方式二:谷歌电子表格
-
官方教程:http://www.inter-illusion.com/assets/I2LocalizationManual/HowtolinkwithGoogleSpreadsheet.html
- 注意:需要使用个人谷歌账号,公司账号权限无法开放给所有人
-
-
本地化标签(Localizing a Label)
-
方法一:手动挂载
- 选择对应UI组件
- 添加组件:L2 Localize
- 选择适当的Tag
- 点击Term选择定义好的Term
-
代码动态挂载
public class TestLanguage : MonoBehaviour { public string termKey="win"; // 术语关键字,用于定位多语言文本 public Localize Localizes; private void Start() { Localizes=GetComponent<Localize>(); // 动态设置多语言文本 Localizes.SetTerm(termKey); } }
-
-
游戏中更改语言
-
方式一:制作脚本写入一下代码传入语言名字作为参数
if ( LocalizationManager .HasLanguage( LanguageName )) { LocalizationManager .CurrentLanguage =语言名称; }
-
示例
public void SetLanguage() { int count = LocalizationManager.GetAllLanguages().Count; //获取语言个数 int nowId = LocalizationManager.GetAllLanguages().IndexOf(LocalizationManager.CurrentLanguage); //获取当前语言索引 //索引递增 if (nowId < count - 1) { setLanguage._Language = LocalizationManager.GetAllLanguages()[nowId + 1].ToString(); } else { setLanguage._Language = "English"; } setLanguage.ApplyLanguage(); }
-
-
方式二:
- 创建Button
- 添加SetLanguage Button组件
- 设置语言(转换后的语言)
- 选择Language Source组件
- 为Button添加监听事件ApplyLanguage
-
-
动态修改游戏中的语言
比如关节展示,我们配表只有“关节”2字,那么关节1、关节2的数字就需要动态展示。
-
需要动态展示的组件挂载新的组件LocalizationParamsManager
-
需要动态展示的内容配表:我是{[名字]}
-
代码逻辑:
GetComponent<Localize>().SetTerm("keys"); GetComponent<LocalizationParamsManager>().SetParameterValue("名字","小明");
-