Unityに関連する記事です

 前回に引き続き、多言語対応(ローカライズ対応)の実装例について紹介します。

 文字列の構造が下記のように、変数への参照データがある場合には別途実装が必要になります。

 おはよう name さん

 この場合のデータベースの構造と、ソースコードの実装方法について説明します。
また言語の変更が入った場合、リアルタイム(動的)に画面に反映される方法にて実装しています。


<完成動画>





1.設計


 前回作成したクラスのうち、LocalizeText クラス以外は修正は不要です。
またデータベース内に新しい文字列の構造のデータを追加して、動作検証を行います。
String.Format メソッドを利用して文字内の {} 部分を変数の内容に置き換える処理を実装して対応します。

 デバッグ用に新しいサンプルクラスを作成し、そちらで文字列の構造をベースにローカライズ対応した表示を行います。

MicroSoft
String.Format メソッド
https://learn.microsoft.com/ja-jp/dotnet/api/syste...


2.サンプルのデータベース


 スプレッドシート、あるいは Json データに新しいデータを追加するか、修正を行います。
文字列内の変数で置き換えたい部分を半角にて {0} と書きます。
これにより、String.Format メソッドにより、{0} 部分を置き換えることができます。
複数の文字列内の情報をゲーム内の情報で置き換えたい場合には {1} {2} のように {} 内の数字を1つずつ増やしてください。

 こちらについて、各言語ごとに登録してください。

 以下は以前利用したサンプルデータを修正したものです。

[
  {
    "tag": "greeting",
    "languageDatas": [
      "おはよう {0} {1} さん",
      "안녕하세요",  // Seesaa Wiki の仕様上表示されませんが、韓国語です
      "Hello  {1} {0} "
    ]
  },
  {
    "tag": "battle",
    "languageDatas": [
      "戦闘  {0}  開始",
      "전투",  // Seesaa Wiki の仕様上表示されませんが、韓国語です
      "Battle  {0}  Start"
    ]
  }
]
 

3.LocalizeText クラスの修正


 新しい変数やメソッドを追加しています。

 ポイントはローカライズを行う際に、このクラス内ではなく、UnityAction に登録されている外部クラスのメソッドに処理を委譲している部分です。


LocalizeText.cs

<= クリックすると開きます



4.<デリゲートを活用した処理の作り方>





5.サンプルクラス




SampleLocalize.cs

<= クリックすると開きます




6.実装例


 ゲームを実行して動作を確認します。

 PlayFab の場合、ログイン後、タイトルデータからローカライズ対応用のマスターデータを取得し、
StringManager クラスにキャッシュしておきます。






 ゲーム内で利用する LocalizeText ゲームオブジェクトには、タグの設定が出来ますので、
そちらを任意のタグに設定します。

 そのようにしておくことで、LocalizeMasterData 内のタグと照合し、表示する内容を自動化できます。
同時に言語切り替え時のローカライズ対応も可能になります。





<実装動画>



 以上で完成です。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu



技術/知識(実装例)

2Dおはじきゲーム(発展編)

2D強制横スクロールアクション(発展編)

3Dダイビングアクション(発展編)

2Dタップシューティング(拡張編)

レースゲーム(抜粋)

2D放置ゲーム(発展編)

3Dレールガンシューティング(応用編)

3D脱出ゲーム(抜粋)

2Dリアルタイムストラテジー

2Dトップビューアドベンチャー(宴アセット使用)

3Dタップアクション(NavMeshAgent 使用)

2Dトップビューアクション(カエルの為に〜、ボコスカウォーズ風)

VideoPlayer イベント連動の実装例

VideoPlayer リスト内からムービー再生の実装例(発展)

AR 画像付きオブジェクト生成の実装例

AR リスト内から生成の実装例(発展)

private



このサイト内の作品はユニティちゃんライセンス条項の元に提供されています。

管理人/副管理人のみ編集できます