#Fungusを使った複数言語対応
Fungusとは、会話イベントをGUIで作成可能なUnityアセットです。このアセットでは、ローカライズを手軽に行うことができる仕組みが取り入れられています。基本的な使い方は、以下の公式動画をご参考にしてください。
13 Fungus localisation
ここで、SayダイアログやMenuダイアログに日本語を入力しExport Localization File
を行った後、Excelで開くと文字化けが起きます。今回はその対処法を記述します。
#UTF-8を用いた対処法
文字化けの原因は、文字コードが異なるためです。そのため、UTF-8に指定してcsvファイルを出力します。この際、bom付きのUTF-8にすることで、Excelでスムーズにcsvファイルを読み取ることができます。
Assets/Fungus/Scripts/EditorにあるLocalizationEditor.cs
を開きます。60行目付近にある
public virtual void ExportLocalizationFile(Localization localization)
の中に、追記を行います。
public virtual void ExportLocalizationFile(Localization localization)
{
string path = EditorUtility.SaveFilePanelInProject("Export Localization File",
"localization.csv",
"csv",
"Please enter a filename to save the localization file to");
if (path.Length == 0)
{
return;
}
string csvData = localization.GetCSVData();
///
/// 日本語用に追記
var encoding = new UTF8Encoding(true);
///
File.WriteAllText(path, csvData, encoding);
AssetDatabase.ImportAsset(path);
TextAsset textAsset = AssetDatabase.LoadAssetAtPath(path, typeof(TextAsset)) as TextAsset;
if (textAsset != null)
{
localization.LocalizationFile = textAsset;
}
ShowNotification(localization);
}
主な変更点はvar encoding = new UTF8Encoding(true);
を追加した点と、File.WriteAllText(path, csvData, encoding);
のように第3引数を与えた点です。
変更を保存した後、再度Export Localization File
ボタンをクリックすることで、bom付きUTF-8でcsvファイルが出力され、Excelでそのまま編集が行えます。