隨時獲取當地語系化文本和資源
驗證環境
- 窗戶
-
- 視窗 11
- 統一編輯器
-
- 2021.3.12f1
- 輸入系統(統一技術)
-
- 1.4.4
- 當地語系化(統一技術)
-
- 1.3.2
此提示的先決條件
作為此提示描述的前提,已預先進行了以下設置。
我們提示的目標
按兩下該按鈕時,當地語系化表中的目標文字將顯示在載入螢幕上。
先決條件知識和準備
此提示假定以下文字的當地語系化: 但是,由於我們不會實現所有這些,因此我們將在此處發佈 1 的過程,但我們將簡化重複的內容。
安裝當地語系化套件
這裏的過程是相同的。
創建當地語系化
這和以前一樣,所以我只會發佈圖像。
在這裡,我們在“場景”資料夾中創建一個“本地化”資料夾,並在其中創建它。
創建區域設置
這也和以前一樣,所以我省略了詳細的程式。 要添加的區域設置包括「日語 (ja)」、「英語 (en)」和「西班牙文 (es)」。
我指定了前面提到的「本地化」 資料夾。
將預設區域設置保留為「日語 (ja)」。
創建文字
將表名 TextTable
保留為 。
Localization
在 TextTable
資料夾中創建一個資料夾並指定它。
創建文字。 這一次,目的是以程式設計方式獲取它,因此您可以暫時註冊一個。
用戶介面放置
我想放置文本和按鈕,當我按下按鈕時,我想顯示當前區域設置的文字。
創建和附加腳本
創建腳本。 ButtonEvent
將名稱保留為 。
using UnityEngine;
using UnityEngine.Localization.Settings;
using UnityEngine.UI;
public class ButtonEvent : MonoBehaviour
{
[SerializeField] private Text Text;
public void OnClick()
{
// Localization から指定したテーブル名とキーからエントリーを取得します
var entry = LocalizationSettings.StringDatabase.GetTableEntry("TextTable", "Hello").Entry;
Text.text = entry.Value;
}
}
輸入按鍵時發生的情況。
我們在這裡所做的只是一件事 LocalizationSettings.StringDatabase.GetTableEntry
:您可以通過在方法中指定在當地語系化中創建的表名和鍵來獲取搜尋結果的條目。
這次我們使用文本來做,但資產也 LocalizationSettings.AssetDatabase
可以通過使用 .
獲得條目后,您所要做的就是獲取您擁有的值。 內容是所選取區域設置的文字。 這次是通過同步處理獲得的,但也可以使用異步方法。
將腳本附加到事件系統。 同時設置文字。
將按下處理分配給按鈕。
運行並驗證
完成設置后嘗試運行它。 由於 UI 中未設置當地語系化事件,因此文本在執行時不會更改。
按兩下該按鈕可切換到日語文本。 這是因為選擇了日語的當前區域設置。
嘗試更改螢幕右上角的區域設置,然後按下按鈕。 它應更改為目標區域設置的文字。