LoginSignup
4

More than 3 years have passed since last update.

FungusのLocalizationで日本語を取り扱う方法

Last updated at Posted at 2019-12-05

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)の中に、追記を行います。

LocalizationEditor.cs
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でそのまま編集が行えます。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
4