Unity - Localization:使用言語を PlayerPrefs で保存する
初めに
Localization には言語(Locale)を PlayerPrefs に保存する機能があります。本記事では、PlayerPrefs を用いた Locale の保存の仕方とそれを用いた使用言語の判定する方法について、まとめます。
Index
PlayerPrefs Locale Selector
PlayerPrefs Locale Selector の使い方
PlayerPrefs を用いた使用言語の保存には、PlayerPrefs Locale Selector を使います。
Edit > Project Settings から Project Settings を開きます。そして、Localization を開き、Locale Selectors の + ボタンをクリックします。
PlayerPrefs Locale Selector をクリックします。
Locale Selectors に PlayerPrefs Locale Selector が追加されます。これで使用言語変更時に PlayerPrefs に使用言語が保存されるようになります。デフォルトでは Player Preference Key は "selected-locale" と表示されています。
使用言語の取得
使用言語は次の方法で取得できます。
- PlayerPrefs.GetString を用いて、Player Preference Key に保存された言語コードを取得する
- LocalizationSettings.SelectedLocale を用いる
PlayerPrefs の使い方は上の前提知識にあるリンク先にまとめております。そちらをご覧ください。
LocalizationSettings.SelectedLocale を用いて、現在使用中の言語の Locale を取得できます。使うには名前空間に次の2つを追加する必要があります。
using UnityEngine.Localization; //Localeを使うために追加 using UnityEngine.Localization.Settings; //Localization.Settingsを使うために追加
(サンプル)
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Localization; //Localeを使うために追加 using UnityEngine.Localization.Settings; //Localization.Settingsを使うために追加 public class LocalizationScript : MonoBehaviour { void Start() { //現在の使用言語を取得. 型は Locale Locale locale = LocalizationSettings.SelectedLocale; //Player Preference Key に保存された言語コードを取得する, 保存されていない場合は現在使用中の言語返す //型は string string CurrentLocale = PlayerPrefs.GetString("selected-locale", locale.name); Debug.Log($"locale{locale.name}"); Debug.Log($"PlayerPrefs:selected-locale{CurrentLocale}"); } }
(実行結果:日本語の場合)
最後に
- 使用言語を PlayerPrefs で保存するには、Locale Selectors に PlayerPrefs Locale Selector が追加する
- 使用言語を取得する方法は次の2つ
- Player Preference Key に保存された言語コードを取得する
- LocalizationSettings.SelectedLocale を用いる