[unity]ゲーム起動直後におけるLocalizatioanの挙動
はじめに
タイトルシーン内のテキストをLocalization化したところ、ゲーム起動直後になぜか文字が日本語→多言語へ切り替わってしまっていた。
基本的なLocalizationの起動直後の言語の考え方は以下の流れである。ProjectSetting>Localization>Locale Selectorsに設定している言語を上から順に確かめて、言語が設定されていなければ次を確かめていく。どこかで言語が設定されていれば、その言語を起動直後の言語としてunity側で設定してくれる。下の画像で言えば、過去に言語を切り替えていて、PlayerPrefasに言語が登録されていれば、その言語が起動直後の初期言語に設定され、PlayerPrefsに言語が登録されていなければ、英語が起動直後の初期言語に設定される。
今回の事例では、PlayerPrefsに中国語を登録していたが、何故か最初に日本語が表示されるという事例であった。
原因
原因はActive Locale:Noneのテキストを日本語にしていたことであった。
どうやらゲーム起動直後は下記の順番でテキストが切り替わるようだ。
1.Active Locale:Noneで設定しているテキスト(今回でいうと日本語)
2.Locale Selectorsで設定された言語のテキスト(今回でいうと中国語)
解決方法
解決方法としてはActive Lacale:Noneを空欄にすればいいと思う。
(テキストが表示されるまで若干タイムラグが起こりそう。。。)
私はテキストの切り替わりをタイトルコールのアニメーションで隠すという手法を使いました。