Unity實(shí)現(xiàn)本地文本多語(yǔ)言化
本文實(shí)例為大家分享了Unity實(shí)現(xiàn)本地文本多語(yǔ)言化的具體代碼,供大家參考,具體內(nèi)容如下
在unity項(xiàng)目過(guò)程中大多都會(huì)遇到多語(yǔ)言化,下面講一下自己的一些實(shí)現(xiàn)思路。
1. 創(chuàng)建一個(gè)要實(shí)現(xiàn)多語(yǔ)言化的基類
public abstract class BaseString {
public abstract string text_test{get;}
}
2. 對(duì)應(yīng)的語(yǔ)言要繼承BaseString類,這里實(shí)現(xiàn)中文和英文的兩個(gè)類
public class ChineseString: BaseString {
public override string text_test { get {return "哈嘍";}}
}
public class EnglishString : BaseString {
public override string text_test { get {return "Hello";}}
}
3. 新建一個(gè)管理類 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. 物體上掛載一個(gè)Global.cs類,實(shí)現(xiàn)調(diào)用
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);
}
}
上面的代碼是通過(guò)點(diǎn)擊一個(gè)按鈕來(lái)進(jìn)行切換語(yǔ)言,進(jìn)而在Text組件上顯示對(duì)應(yīng)語(yǔ)言的文本。
當(dāng)然根據(jù)系統(tǒng)語(yǔ)言來(lái)進(jìn)行切換就可以實(shí)現(xiàn)了。


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
c# 基于Titanium爬取微信公眾號(hào)歷史文章列表
這篇文章主要介紹了c# 基于Titanium爬取微信公眾號(hào)歷史文章列表,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03
C++通過(guò)Callback向C#傳遞數(shù)據(jù)的方法
下面小編就為大家分享一篇C++通過(guò)Callback向C#傳遞數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
C# 類型轉(zhuǎn)換(隱式類型,顯式類型,自定義類型)
本文詳細(xì)介紹了C#中的類型轉(zhuǎn)換,包括隱式類型轉(zhuǎn)換和顯式類型轉(zhuǎn)換(強(qiáng)制類型轉(zhuǎn)換),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
使用revit api畫(huà)垂直于風(fēng)管的風(fēng)管示例
這篇文章主要介紹了使用revit api畫(huà)垂直于風(fēng)管的風(fēng)管示例,需要的朋友可以參考下2014-03-03
C#設(shè)計(jì)模式之Facade外觀模式解決天河城購(gòu)物問(wèn)題示例
這篇文章主要介紹了C#設(shè)計(jì)模式之Facade外觀模式解決天河城購(gòu)物問(wèn)題,簡(jiǎn)單描述了外觀模式的定義并結(jié)合具體實(shí)例分析了外觀模式解決購(gòu)物問(wèn)題的相關(guān)步驟與操作技巧,需要的朋友可以參考下2017-09-09
Unity InputFiled TMP屬性和各種監(jiān)聽(tīng)示例詳解
這篇文章主要為大家介紹了Unity InputFiled TMP屬性和各種監(jiān)聽(tīng)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
基于C#制作一個(gè)飛機(jī)大戰(zhàn)小游戲的全過(guò)程
飛機(jī)大戰(zhàn)小游戲詳細(xì)大家都不陌生,下面這篇文章主要給大家介紹了關(guān)于基于C#制作一個(gè)飛機(jī)大戰(zhàn)小游戲的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02

