LoginSignup
11
3

More than 3 years have passed since last update.

Unity公式のLocalizationを軽めに使う

Last updated at Posted at 2021-01-25

概要

LocalizationというpackageがUnity公式で提供されています(preview)
まだ情報が少なかったため、とりあえず軽くプロジェクトに入れてみる方法をメモしておきます
導入などは公式がわかりやすいです

環境

Unity2020.2.1f1
Localization 0.9.0-preview

軽く使ってみる

uGUIのTextをローカライズするだけだったらInspectorからLocalizeStringEventをアタッチして、表示する文字を選択するだけです
今回は動的に変更したい時にどうするかをメインに記載します
※StringだけでSpriteなどには触れません

var tableName = "TableName";// 作成したテーブル名を設定
var key = "FOO_KEY";// 取得したい文字のキー

var stringTable = await new LocalizedStringTable {TableReference = tableName}.GetTable().Task;
var stringResult = GetEntry(key).GetLocalizedString();

裏でアセットをロードしたりするためかawait必須になっています
StringTableはSerializeFieldでInspectorから指定できるため、awaitを回避できますが、毎回指定するのは面倒です

細かいところは無視して使う例

まずはコードだけ

public static class Localize
{
    private static StringTable StringTable;

    public static async UniTaskVoid LoadStringTableAsync()
    {
        StringTable = await new LocalizedStringTable {TableReference = "StringTable"}.GetTable().Task;
    }

    public static string GetLocalizedString(string key)
    {
        return StringTable.GetEntry(key).GetLocalizedString();
    }
}

使い方は下記です
とりあえず入れてみようという気になって知見が増えると嬉しいです

// アプリ起動時や言語選択時にロードしておく
// キャンセルなどはうまいことやる
await Localize.LoadStringTableAsync();

// 下記でよしなに取得できる
Localize.GetLocalizedString("BAR_KEY");
11
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
3