Dialogue System for unityを使ったLocalization方法
Localizetionする方法
DialogueSystemForUnityではLocalizeする方法がDialogueConversationとそれ以外で異なる。それぞれに対して解説していく。
Dialogue Conversationに対して
1.Template>DialogueEntriesの横にある「+」を押す
2.Titleに好きな文字列を代入し、TypeをLocalizationに設定
3.Templatesの右にある「Menu」ドロップダウンを選択肢、「Apply Template To Assets」を選択
4.適当なEntryを選択肢、インスペクターを確認して追加されていることを確認
(どこでどの言語を使うか設定するかは調べ中)
UIオブジェクトに対して
1.テキストをローケライズしたいUIオブジェクトに対して、「Localize UI」コンポーネントを追加する
変数を含んだテキストに対応する方法
事前にScriptで処理する。
必要最低限の処理を書いたスクリプト
using PixelCrushers;
using UnityEngine;
public class Change : MonoBehaviour
{
[SerializeField]
// TextTable
private TextTable textTable;
public void CangeText()
{
// 変更するテキスト
string text = "攻撃力";
// 変更後のテキスト
// 第一引数:
// 第二引数: 変換に使用するField
var hello = textTable.GetFieldTextForLanguage(text, "en");
// コンソールに翻訳後のテキストを表示
Debug.Log(hello);
}
}
ポイント
1.翻訳で使用したいテーブルをインスペクターから指定する。
2. TextTableクラスが持つ関数”GetFieldTextForLanguage”で元の文字列に対応した文字列を入手する。
後は、翻訳する文字列に"XXXX"などの他と被らない文字列を元から組み込んでおき、TextTableから入手する時に適切な位置に"XXXX"が来るように設定しておく。
翻訳後に、”XXXX”を置換すればOK。
参考にした記事
ディスカッション
コメント一覧
まだ、コメントがありません