Unity实现本地文本多语言化

本文实例为大家分享了Unity实现本地文本多语言化的具体代码,供大家参考,具体内容如下

在unity项目过程中大多都会遇到多语言化,下面讲一下自己的一些实现思路。

1. 创建一个要实现多语言化的基类

public abstract class BaseString {
 public abstract string text_test{get;}

}

2. 对应的语言要继承BaseString类,这里实现中文和英文的两个类

public class ChineseString: BaseString {
 public override string text_test { get {return "哈喽";}}
}

public class EnglishString : BaseString {
 public override string text_test { get {return "Hello";}}
}

3. 新建一个管理类 TextManager.cs

public class TextManager {

 public BaseString strComponent;

 private ChineseString chineseStrCompenent = new ChineseString();
 private EnglishString englishStrComponent = new EnglishString();
 public TextManager() {
 strComponent = chineseStrCompenent;
 }

 public void ChangeLanguage(LanguageType type) {
 if (type == LanguageType.ZH)
 {
  strComponent = chineseStrCompenent;
 } else if (type == LanguageType.EN)
 {
  strComponent = englishStrComponent;
 }
 }
}

4. 物体上挂载一个Global.cs类,实现调用

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public enum LanguageType
{
 ZH,
 EN
}

public class Global : MonoBehaviour {

 public Text textView;

 private LanguageType mLanguage = LanguageType.ZH;
 private TextManager textManager = new TextManager();
 // Use this for initialization
 void Start () {
 textManager.ChangeLanguage(mLanguage);
 }

 // Update is called once per frame
 void Update () {
 textView.text = textManager.strComponent.text_test;
 }

 public void SwitchLanguage()
 {
 if (mLanguage == LanguageType.ZH)
 {
  mLanguage = LanguageType.EN;
 } else if (mLanguage == LanguageType.EN)
 {
  mLanguage = LanguageType.ZH;
 }

 textManager.ChangeLanguage(mLanguage);
 }
}

上面的代码是通过点击一个按钮来进行切换语言,进而在Text组件上显示对应语言的文本。
当然根据系统语言来进行切换就可以实现了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2020-06-27

Unity多语言转换工具的实现

本文实例为大家分享了Unity多语言转换工具的具体代码,供大家参考,具体内容如下 说明 遍历Unity场景和Prefab,提取Text组件文字,并导出Json表.可将Json文本进行多语言翻译后,利用工具将内容替换回原场景或Prefab. 代码 using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using UnityEditor

Java实现的进制转换工具类完整示例

本文实例讲述了Java实现的进制转换工具类.分享给大家供大家参考,具体如下: import java.nio.charset.Charset; /** * 十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制,一般用数字0到9和字母A到F表示(其中:A~F即10~15).<br> * 例如十进制数57,在二进制写作111001,在16进制写作39.<br> * 像java,c这样的语言为了区分十六进制和十进制数值,会在十六进制数的前面加上 0x,比如0x20是十进制的

Go语言转换所有字符串为大写或者小写的方法

本文实例讲述了Go语言转换所有字符串为大写或者小写的方法.分享给大家供大家参考.具体如下: Go语言的string模块包含了ToLower和ToUpper函数,用于将字符串转换成小写和大写 复制代码 代码如下: package main import (   "fmt"   "strings" ) func main() {   fmt.Println(strings.ToUpper("hello world")) } 希望本文所述对大家的Go语

VBS实现GB2312,UTF-8,Unicode,BIG5编码转换工具

演示 echo "ABCDE &!@#$ ^<>() %% abcde 测试!"> "处理前.txt" GB2Ue.vbs "处理前.txt" "处理后.txt" Ue2U8.vbs "处理后.txt" U82GB.vbs "处理后.txt" GB2U8.vbs "处理后.txt" U82Ue.vbs "处理后.txt"

Python3中的2to3转换工具使用示例

python3与python2的还是有诸多的不同,比如说在2中: 复制代码 代码如下: print "Hello,World!"  raw_input() 在3里面就成了: 复制代码 代码如下: print ("Hello,World!")  input() 所以如果用的python2开发的项目要迁移到3中,就需要进行代码的转换.Python3中自带了个转换工具,下面用个最简单的例子来说说2to3转换工具. 例子:(2to3Test.py  里面只有print这行代

java实现的日期时间转换工具类完整示例

本文实例讲述了java实现的日期时间转换工具类.分享给大家供大家参考,具体如下: 最基础的东西,总结一下,下次用的时候就方便一些了.废话不多说,直接贴代码: package com.incar.base.util; import com.incar.base.exception.BaseRuntimeException; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDat

常用的C语言编程工具汇总

中国有句古话叫做"工欲善其事,必先利其器",可见我们对工具的利用是从祖辈就传下来的,而且也告诉我们在开始做事之前先要把工具准备好.有了好的工具那么我们做起事来也会事半功倍.学习C语言也是一样的,对于初学者来说往往选择一款好的编程工具是很头大的事情.下面小编就给大家点评几款常用的C语言编程工具,究竟那款适合你,由你自己决定. VC++ 6.0   本站下载地址: 点击下载 这款软件相信大家看到名字就觉得很亲切的,也是大家吐槽最多的.中国大学的计算机专业学习C语言的必备神器,也算是比较古老

java实现字符串和数字转换工具

本文实例为大家分享了java字符串和数字转换工具的具体代码,供大家参考,具体内容如下 package com.test.util; /** * 数字工具类 */ public class NumberUtil { /** * 数字转换为字符串 * @param num 数字 * @return 字符串,如果 num 为空, 返回空字符串 */ public static String num2Str(Object num) { String str = null; if (num == null

Android开发之拼音转换工具类PinyinUtils示例

本文实例讲述了Android开发之拼音转换工具类PinyinUtils.分享给大家供大家参考,具体如下: 1.首先下载pinyin4j-2.5.0.jar,拷贝到工程的lib目录里 官网下载地址:https://sourceforge.net/projects/pinyin4j/ 或者点击此处本站下载. 2.创建工具类:PinyinUtils /** * 拼音转换工具 * * @描述 TODO * @项目名称 App_imooc * @包名 com.android.imooc.quickInde

java实体对象与Map之间的转换工具类代码实例

这篇文章主要介绍了java实体对象与Map之间的转换工具类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Map接口中键和值一一映射. 可以通过键来获取值. 给定一个键和一个值,你可以将该值存储在一个Map对象. 之后,你可以通过键来访问对应的值. 当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常. 当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常

易语言秒数与时分秒格式转换工具的代码

秒数与时分秒格式转换的代码 .版本 2 .程序集 窗口程序集1 .子程序 _秒数转换成时间按钮_被单击 .局部变量 总秒数 .局部变量 时 .局部变量 分 .局部变量 秒 总秒数 = 到数值 (输入秒数编辑框.内容) 秒 = 到数值 (输入秒数编辑框.内容) 分 = 取整 (秒 ÷ 60) 秒 = 秒 % 60 .如果真 (分 ≥ 60) 时 = 取整 (分 ÷ 60) 分 = 分 % 60 .如果真结束 信息框 (到文本 (总秒数) + "秒 = " + 到文本 (时) + &quo