[UNITY]2DRPG開発日誌 #42 自力でローカライズする方法(アセット不使用)

結局これが一番シンプルで簡単なような気がします。

まず、翻訳文章のスクリプトをこのように準備します。

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestLocalizeManager : MonoBehaviour
   {
      public int v_Int;
      public string v_String;
      public string testString;

      public void SetVariables()
      {
         v_Damage = 999;
         v_Name = "ラブ";
      }

      public void SetJa()
      {
         testString = $"勇者{v_Name}に、{v_Damage}のダメージ!";
      }

      public void SetEn()
      {
         testString = $"{v_Damage} Damage To Yuusha {v_Name} !";
      }
   }

文章に埋め込む変数と、文章そのものを定義して、それぞれの翻訳文章代入するメソッドを書きます。

変数をstaticにする必要はありません。

次に、テキストに翻訳文章を適用するスクリプトをこのように準備します。

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class TestTextManager : MonoBehaviour
   {
      public TestLocalizeManager testLocalizeManager;
      public Text testText;

      public void SetTextFromString()
      {
         testText.text = testLocalizeManager.testString;
      }
   }

今回は単純にTextにstringを適用させてるだけです。

あとは、「SetVariables()」→「SetJa()」→「SetTextFromString()」の順番で実行すると、

いい感じですね。

言語のみを英語に変える時は「SetEn()」→「SetTextFromString()」の順番で実行します。

動画でも解説してみました。