(:3[kanのメモ帳]

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

(:3[kanのメモ帳]


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


Unity+PlayFabでタイトルニュース(各ゲームごとのお知らせ)の設定&取得【Unity】【PlayFab】


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


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


はじめに

今回はUnityでタイトルニュースのタイトルデータを使ってみようという感じの記事です!


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

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



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

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

Pricing


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





タイトルニュースとは

そもそもPlayFabにおけるタイトルとは、ゲームタイトルの事なので、

タイトルニュースは各ゲームごとのニュース(お知らせ)という意味になります。

例えば「アプデ内容のおしらせ」や「不具合報告」のように全ユーザに伝えたい物に使います。


なお、各言語ごとのテキストを設定してローカライズする事も可能です。


タイトルニュースの設定

タイトルニュースの設定はブラウザ上の管理画面で行います。


設定箇所は左側にある「参加/コンテンツ」のページ内上部にある「タイトルニュース」です。

「新しいタイトルニュース」を押すと新規作成が出来るので、


そこでタイトルや本文、ステータスを設定した後に保存する形です。

なお、「言語の追加」で各言語ごとのテキストを設定する事も出来ます。

(設定してない言語はデフォルトの言語のテキストを取得する)



タイトルニュースの取得

次に設定したタイトルニュースの取得方法ですが、以前の記事で紹介したようにログインを行った後、

GetTitleNewsRequestのインスタンスを生成し、PlayFabClientAPI.GetTitleNewsにそれと、

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

using PlayFab;//PlayFabProfilesAPIなどを使うのに必要
using PlayFab.ClientModels; //GetTitleNewsRequestなどを使うのに必要
//=================================================================================
//ロード
//=================================================================================

/// <summary>
/// ロード
/// </summary>
public void Load() {
  Debug.Log($"PlayFab タイトルニュースの取得開始");

  //GetTitleNewsRequestのインスタンスを生成(Countで取得するニュース数を指定可能)
  var request = new GetTitleNewsRequest(){ Count = 1 };

  //ニュース取得処理実行
  PlayFabClientAPI.GetTitleNews(request, resultCallback:OnSuccess, errorCallback:OnError);
}

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

private void OnSuccess(GetTitleNewsResult result) {
  Debug.Log("PlayFab タイトルニュースの取得成功");
  foreach (var news in result.News) {
    Debug.Logl($"PlayFab タイトルニュース : {news.Title} : {news.Body}");
  }
}

//=================================================================================
//失敗
//=================================================================================
  
private async void OnError(PlayFabError error) {
  Debug.LogError($"PlayFab タイトルニュースの取得失敗 : {error.GenerateErrorReport()}");
}


もちろん、ニュースのテキストなどを取得するだけなので、ユーザーに表示するためのUIや

一度表示したものを二度と表示しない処理等は自前で実装する必要があります。


なお、日本語のニュースを設定してある場合に

日本語設定のユーザが取得すると、自動的に日本語の内容になります。


ちなみにデフォルトの言語やユーザの言語を設定する方法は以下の記事を参照の事。