本日は Unity の技術調査枠です。
Unity Localization を使ってプロジェクトをローカライズする方法を記事にします。
今回はリストの表示をローカライズでフォーマットを指定する方法です。
前回記事
以下の前回記事の続きです。
bluebirdofoz.hatenablog.com
リストの表示をローカライズでフォーマットを指定する
UnityLocalization の Smart String で利用できる変換規則ではリスト型の表示についてもフォーマットを指定した表示ができます。
docs.unity3d.com
サンプルシーン
Localization のテーブルにリスト型の変換規則を以下のフォーマットで指定します。
{value(参照値の指定):list(リスト型の指定 list or l):template(フォーマットの指定)|spacer(区切り文字)|final spacer(最後の区切り文字)}
今回は以下の変換規則を指定して[Smart]にチェックを入れました。
{0:list:{}|, |, and }
値は以下の通りスクリプトからリスト型の値を代入します。
・LocalVariableList
using UnityEngine; using UnityEngine.Localization.Components; public class LocalVariableList : MonoBehaviour { private LocalizeStringEvent _localizeStringEvent; void Start() { // String Reference の参照を取得する _localizeStringEvent = GetComponent<LocalizeStringEvent>(); // LocalVariablesにリスト型の値を代入する // 0で指定しているので1つ目の要素が参照される _localizeStringEvent.StringReference.Arguments = new object[] { new[] { "one", "two", "three" } }; } }
適当な Text コンポーネントに Localize String Event でキーの参照を設定し、値を代入するサンプルスクリプトを合わせて追加します。
シーンを再生して動作を確認します。
以下の通り、リスト型を指定のフォーマットに従って出力できました。