Unity3D实现多语言切换
项目现在需要做多语言切换部分,下面是一个基本多语言切换实现
1.
首先建立一个类来存放字符,其中包括一个静态方法来根据Key和语言类型获取对应字符
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public static class multiLangConst { static Dictionary<string, string> LangMap_en = new Dictionary<string, string>{
{"txt_name", "Name"},
}; static Dictionary<string, string> LangMap_cn = new Dictionary<string, string>{
{"txt_name", "名字"},
}; public static string GetValue(string languageType, string key) {
if (languageType == "en") {
return LangMap_en[key];
} else if (languageType == "cn") {
return LangMap_cn[key];
}
return "N/A";
}
}
2.
然后建立一个全局的委托
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System; public class GameManager : MonoBehaviour { public delegate void OnLanguageChanged(string type);
public static OnLanguageChanged onLanguageChanged = null;
public void SetupLanguage(string type) {
if (onLanguageChanged != null) {
onLanguageChanged(type);
}
}
}
3.
最后是一个Handler,挂在有Text组件的对象上
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; public class multiLangHandler : MonoBehaviour { [SerializeField, Header("Langkey")]
private string LangKey = ""; void Awake() {
GameManager.onLanguageChanged += onLanguageChanged;
} private void OnDestroy() {
GameManager.onLanguageChanged -= onLanguageChanged;
} void onLanguageChanged(string languageType) {
Text text = this.gameObject.GetComponent<Text>();
if (text != null) {
var value = multiLangConst.GetValue(languageType, LangKey);
text.text = value;
return;
}
}
}
最后通过按钮来调用GameManager下面的SetupLanguage方法来进行语言切换。
Unity3D实现多语言切换的更多相关文章
- DataGrid 列头实现国际化语言切换
<DataGrid> <DataGrid.Columns> <DataGridTextColumn Binding="{x:Null}" Width= ...
- Android app应用多语言切换功能实现
最近在做一个多语言切换的功能,类似于微信的语言切换,搜了下资料基本上都是以下这种: 1. 实现的效果 和微信类似,在设置界面打开切换语言的界面,选择语言后重启 HomeActivity,语言切换完成, ...
- ABP的语言切换
在ABP官网http://www.aspnetboilerplate.com/创建一个Multi Page Web Application项目并打开,在Web项目下可以找到一个Controllers/ ...
- iOS 语言切换、本地化,国际化
什么是本地化处理? 本地化处理就是我们的应用程序有可能发布到世界的很多国家去,因为每个国家应用的语言是不一样的,所以我们要把我们的应用程序的语言要进行本地化处理一下. 本地化处理需要处理那些文件? ( ...
- 【转】Android 语言切换过程分析
最近在看一个bug,系统切换语言后,本来退到后台的音乐,会在通知栏上显示通知.为了解决这个bug,我学习了下android的语言切换流程,也参考了大量其他人的资料.(主要参考了http://blog. ...
- android 语言切换过程分析
android 语言切换过程分析 2014-02-27 18:13 1207人阅读 评论(0) 收藏 举报 语言切换android语言切换android改变语言 最近在看一个bug,系统切换语言后,本 ...
- QT实现多语言切换
功能需求: 网盘客户端要能够实现多国语言的切换,第一版要支持中.英文的切换.在实现过程中感觉QT对多国语言的支持还是很不错的,制作多语言包很方便,切换的逻辑也很简单.下面就来看一下QT中如何制作多语言 ...
- Android 应用内多语言切换
最近公司的 App 里需要用到多语言切换,简单来说,就是如果用户没有选择语言选项时,App 默认跟随系统语言,如果用户在 App 内进行了语言设置,那么就使用用户设置的语言.当然,你会发现,App 的 ...
- bootstrap table 插件多语言切换
在bootstrap中的bootstrap table 插件在多语言切换的审核,只需要如下操作 引入bootstrap-table-locale-all.js文件 $('#Grid').bootstr ...
随机推荐
- 跟随我在oracle学习php(18)
修改表: 一般概述 通常,创建一个表,能搞定(做到)的事情,修改表也能做到.大体来说,就可以做到: 增删改字段: 增:alter table 表名 add [column] 字段名 字段类 ...
- ubuntu 服务restart失败
在ubuntu使用时碰到的一个问题,修改了nginx服务的配置文件后,重启服务,显示 * Restarting nginx nginx ...
- MVP之高级MVP架构封装
MVP之高级MVP架构封装 No MVP: 我们一般会这样写: public class MainActivity extends AppCompatActivity { private EditTe ...
- UVa 11389 - The Bus Driver Problem 难度:0
题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...
- CentOS 7安装部署ELK 6.2.4-SUCCESS
一.ELK介绍 ELK是三款开源软件的缩写,即:ElasticSearch + Logstash + Kibana.这三个工具组合形成了一套实用.易用的监控架构,可抓取系统日志.apache日志.ng ...
- Python的魔术方法总结
魔术方法:再不需要程序员定义,本身就存在类中的方法就是魔术方法. 魔术方法通常都长这样:__名字__. 1.__str__和__repr__ 为了方便记忆看如下列子 class Course: def ...
- python修炼第三天
今天主要讲了文件操作,函数与装饰器,装饰器比较烧脑,需要多做练习,逐步分解来进行理解! 加油! 一 文件操作 操作系统 提供文件的概念可以操作磁盘. 文件的只读模式: 注意如果是windows ...
- kd-tree题目总结
在竞赛中,kd-tree一般只用于平面,很少有高于二维的情况. 在随机情况下,kd-tree的复杂度为O(NlogN),但会被极端数据卡到平方级别. 总而言之,就是优美的暴力. 查询时,通过估价函数进 ...
- vscode 创建.net core项目初体验
微软的virtual studio编辑器那是宇宙第一大编辑器,可惜就是太笨重,遇到性能差一些的电脑设备,简直无法快速的编辑项目. 而vs code编辑器轻便易用,想要编辑哪种项目,只需扩展插件就OK, ...
- FNMP
Table of Contents 平台 FNMP安装 FNMP配置 php配置 mysql配置 nginx配置 phpMyAdmin配置 平台 freeBSD 12.0 FNMP安装 php安装 v ...