(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!

    

Unity+PlayFabでデフォルトの言語やユーザの言語を変える方法【Unity】【PlayFab】


このエントリーをはてなブックマークに追加



この記事でのバージョン
Unity 2022.3.16f1
PlayFab SDK 2.136.220523


はじめに

今回はPlayFabのデフォルトの言語やユーザの言語を変える方法の紹介です!


ちなみに、PlayFabとはなんぞや?という方は以下の記事を参照の事。

ざっくり言うとサーバーサイドが関わる事を楽して実装出来るサービスです。



しかも10万ユーザまで無料で使えるので、「ユーザが増えないのにお金だけ払う」みたいな事がなく、

個人開発でも使い始めやすいですし、Microsoftのサービスという安心感まであります。

Pricing


なお、本記事は以下の導入やログイン処理が済んでいる前提になりますので、あしからず。





PlayFabのデフォルトの言語やユーザの言語を変える方法

まず、ゲームのデフォルトの言語設定はPlayFabの管理画面から行います。

上部の歯車アイコンから「タイトルの設定」を選択した後、上部の「全般」を選択、

すると「既定の言語」から表示されるので、これを任意の物に設定し、保存するだけ。


次に各ユーザの言語を変える方法ですが、以前の記事で紹介したような感じでログイン処理を行った後、

SetProfileLanguageRequestのインスタンスを生成し、PlayFabProfilesAPI.SetProfileLanguageにそれと、

成功時と失敗時のデリゲートを渡すだけ。

using PlayFab;//PlayFabProfilesAPIなどを使うのに必要
using PlayFab.ProfilesModels; //SetProfileLanguageRequestなどを使うのに必要
//=================================================================================
//言語更新
//=================================================================================

/// <summary>
/// 言語更新
/// </summary>
public void UpdateLanguage() {
  //日本語に言語を変える
  var language = "ja";
  Debug.Log($"PlayFab 言語設定 : {language}");
  
  //SetProfileLanguageRequestのインスタンスを生成
  var request = new SetProfileLanguageRequest(){ Language = language };

  //言語設定処理
  PlayFabProfilesAPI.SetProfileLanguage(request, resultCallback:OnSuccess, errorCallback:OnError);
}
  

//=================================================================================
//成功
//=================================================================================

private void OnSuccess(SetProfileLanguageResponse result) {
  Debug.Log($"PlayFab 言語設定成功");
}

//=================================================================================
//失敗
//=================================================================================
  
private async void OnError(PlayFabError error) {
  Debug.LogError($"PlayFab 言語設定失敗 : {error.GenerateErrorReport()}");
}


なお、言語の指定には"ja"(日本語)、"en"(英語)というようなBCP47という形式を使います。

de ドイツ語
en 英語
ja 日本語
ko 韓国語
zh-Hans 中国語(簡体字)
zh-Hant 中国語(繁体字)


なお、確認画面の「プレイヤー」から任意のユーザーを検索することで、


そのユーザの言語を確認したり、直接変更する事も可能です。