Unity學(xué)習(xí)記錄/ #4 Localization
?Localization,就是游戲本土化系統(tǒng)。在我們平日玩游戲的時候,可能遇到過這種情況:
我們需要中文
We need Chinese
中國語は必要
Nous avons besoin de chinois
Wir brauchen chinesisch
Necesitamos chino
potrzebujemy chin
Precisamos de chinês
Нам нужно китайский
?????????????????
Χρειαζ?μαστε κιν?ζικα
????一款游戲想要讓全世界玩家游玩,就必然需要對游戲進行本土化處理,讓不同語言的玩家都能暢玩。當(dāng)然,游戲公司一般都會將游戲的本土化處理交給外包公司進行翻譯制作。那么我們獨立開發(fā)一款游戲時,該如何制作的游戲的本土化呢?Unity 官方就為此制作了一個免費的插件,Localization,方便我們獨立對游戲進行本土化翻譯。(當(dāng)然擁有這樣的一個系統(tǒng)之后,游戲的翻譯工作也至關(guān)重要 笑)

一、導(dǎo)入Localization
? ? 想要使用Localization插件,我們需要先在Unity項目中,打開Window → Package Manager 在左上角更改選擇為Unity Registry,就可以搜索Localization點擊install進行安裝。

? ? 要使用Localization,我們首先要創(chuàng)建一個Localization Settings。Localization Settings是一個Asset文件,我們可以在Asset窗口右鍵進行創(chuàng)建。

? ? 也可以在 Edit → Project Settings → Localization 窗口里,點擊Create創(chuàng)建并保存。


二、編輯Settings
? ? 讓我們點擊Localization Settings文件,簡單看一下配置內(nèi)容。

Available Locales:可以在這里設(shè)置添加項目中可用的區(qū)域語言,例如你的項目想要能支持英語、中文和日語的話,就需要我們在此處添加那三種語言。
? ? 點擊Locale Generator,就能打開面板進行語言的添加,搜索和勾選我們需要的語言,并點擊Generator Locales就完成了。


? ? 在Settings里面成功添加語言后,會出現(xiàn)新的 Locale 文件,在這個文件中會顯示Locale的各種信息:貨幣、日期時間等等。

? ? 在Settings里面的Locale Selectors里,我們還可以選擇默認(rèn)的Locale。


三、Localization Tables編輯內(nèi)容
Localization Tables 可以讓我們編輯不同語言下的不同內(nèi)容,包括文字、圖片、音頻等等。
Window → Asset Management → Localization Tables 打開 Tables 后點擊 New Table Collection。


? ? 值得一提的是,在這個窗口中,我們同樣能夠通過點 Locale Generator 去設(shè)置語言。
Type:Table Collection 總共有兩種類型,String 和 Asset 兩種類型,String Table Collection 支持我們儲存?String 文字,Asset Table Collection則支持儲存 Object 類型,例如:GameObject、Sprite、AudioClip等等。
Name:設(shè)置新創(chuàng)建的 Localization Table 的名字。
? ? 設(shè)置好后,點擊 Create 創(chuàng)建新的Table。

? ? 通過觀察這個界面我們不難看出來,他是一個類似于字典的數(shù)據(jù)結(jié)構(gòu),通過一個Key關(guān)鍵字存儲不同語言下對應(yīng)的內(nèi)容。Object 類在Unity中充當(dāng)了絕大多數(shù)內(nèi)置類的基類,例如?GameObject、?Component、Material、Texture、Mesh、Sprite?等等,都可以配置到這個表格中。
? ? 同樣值得一提的是,在 String Tables 中的 Smart 設(shè)置,讓文本中的文字變成智能文字,支持其他腳本傳進來的數(shù)據(jù)。


四、使用Localization文件
? ? 在配置完了 Localization 文件后,我們該如何使用該系統(tǒng)呢?
? ? Unity可以通過多種不同的方式訪問Localization文件,接下來將演示其中一種方式。在場景中新建一個 Text 組件,點擊 Text 組件右上角的按鈕,選中 Localize。

? ? 點擊之后,Unity編輯器會自動為這個 Text 對象掛載了一個Localiza String Event 組件,因為是 Text 自動為我們選擇為 String 類型的。在String Reference中選擇為我們剛剛所創(chuàng)建的 Table Key,這樣子在 Play 運行的過程中,就會根據(jù)不同語言選擇,顯示不同的文本內(nèi)容了。在這個組件中,我們同樣還可以通過點擊 Add Table Entry 和 Add Locale 來新建Key 和 Table文件。以及修改Entry Name 和不同語言下的內(nèi)容和Smart屬性。

? ? 同理,Asset Localization的使用也與String相同。


? ? 以上就是 Localization System?的基礎(chǔ)使用,因為目前Unity的這個插件還只是剛剛變?yōu)檎桨?,還存在一些拓展使用上的問題,不過已經(jīng)基本滿足我們項目的使用了,還是很不錯的一個插件。

聊聊:大家好,暑假已經(jīng)接近尾聲了我也終于能閑下來寫寫專欄內(nèi)容,后面開學(xué)了也會繼續(xù)寫下去的(沒人會看的?。?,我也不是什么Unity大佬只是想寫點自己的學(xué)習(xí)知識,以后計劃還會寫點別的內(nèi)容的專欄,比如雜談、自己的游戲原型設(shè)計啥的吧。
本期教程推薦:
咖喱飯游戲老師的Localization教程:
https://www.bilibili.com/video/BV1Rt4y1a7FQ?share_source=copy_web
官方文檔:Quick Start Guide | Localization | 0.10.0-preview (unity3d.com)