UnityとiOSでSmtpを叩くと怒られる奴の解決方法
iPhone XsMaxがなんとか手に入りました。
お ま た せ pic.twitter.com/XF1RO10wqH
— JackMasaki T265 (@JackMasaki) 2018年10月13日
諸事情でsmtpをiPhoneから叩こうということになり、UnityからビルドしてXcodeでデプロイし、実機でテスト!という段階でエラーが発生しました。
発生したエラーは次の通りです。
MissingMethodException: Method not found: 'Default constructor not found...ctor() of System.Net.Configuration.MailSettingsSectionGroup'. at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in
:0 at System.Configuration.Configuration.GetSectionGroupInstance (System.Configuration.SectionGroupInfo group) [0x00000] in :0 at System.Configuration.ConfigurationSectionGroupCollection.get_Item (System.String name) [0x00000] in :0 at System.Configuration.Configuration.GetSection (System.String path) [0x00000] in :0 at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection (System.String configKey) [0x00000] in :0 at System.Configuration.ConfigurationManager.GetSection (System.String sectionName) [0x00000] in :0 at System.Net.Mail.SmtpClient..ctor (System.String host, Int32 port) [0x00000] in :0 at EmailHandler.SendEmail (System.String from, System.String password, System.String to, System.String subject, System.String body) [0x00000] in :0 at UnityEngine.Events.UnityEvent.Invoke () [0x00000] in :0 at UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction 1 functor) [0x00000] in <filename unknown>:0 at UnityEngine.EventSystems.StandaloneInputModule.ProcessTouchPress (UnityEngine.EventSystems.PointerEventData pointerEvent, Boolean pressed, Boolean released) [0x00000] in <filename unknown>:0 at UnityEngine.EventSystems.StandaloneInputModule.ProcessTouchEvents () [0x00000] in <filename unknown>:0 at UnityEngine.EventSystems.StandaloneInputModule.Process () [0x00000] in <filename unknown>:0 UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction
1) UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchPress(PointerEventData, Boolean, Boolean) UnityEngine.EventSystems.StandaloneInputModule:ProcessTouchEvents() UnityEngine.EventSystems.StandaloneInputModule:Process() (Filename: currently not available on il2cpp Line: -1)
どうやらIL2CPPのバグのようです。
解決法としてはlink.xmlに以下のものを追加、もしくはlink.xmlがない場合にはAssetフォルダに作成し以下のものを記述し、再度UnityからiOS向けにビルドすることで解決します。
<linker> <assembly fullname="System"> <type fullname="System.Net.Configuration.MailSettingsSectionGroup" preserve="all"/> <type fullname="System.Net.Configuration.SmtpSection" preserve="all"/> <type fullname="System.Net.Configuration.SmtpNetworkElement" preserve="all"/> <type fullname="System.Net.Configuration.SmtpSpecifiedPickupDirectoryElement" preserve="all"/> </assembly> </linker>
参考になったQ&A
PlayFabでEmailとPasswordを使ってログインする
今回はUnityでのEmailとPasswordを使ったPlayFabへのログイン方法について書きます。
PlayFabの導入部分はこちら
PlayFabのログインについて
PlayFabには様々なログイン方法があります。
ログインの種類 | |
---|---|
LoginWithAndroidDeviceID | AndroidデバイスのIDを仕様してログイン |
LoginWithCustomID | Titleごとに生成した文字列を使用してログイン |
LoginWithEmailAddress | Emailアドレスとパスワードを使用してログイン |
LoginWithFacebook | Facebookのアクセストークンを使用してログイン |
LoginWithFacebookInstantGamesId | FacebookインスタントゲームIDでログイン |
LoginWithGameCenter | iOS Game CenterのIDを使用してログイン |
LoginWithGoogleAccount | Googleアカウントを使用してログイン |
LoginWithIOSDeviceID | iOSのデバイスIDを使用してログイン |
LoginWithKongregate | Kongregateアカウントを使用してログイン |
LoginWithNintendoSwitchDeviceId | Nintendo SwitchのデバイスIDを使用してログイン |
LoginWithPlayFab | PlayFabのアカウントでログイン |
LoginWithSteam | Steamのアカウントでログイン |
LoginWithTwitch | Twitchのアクセストークンを使用してログイン |
LoginWithWindowsHello | WindowsHelloを介して署名しログイン |
LoginWithXbox | Xbox Liveトークンを使用してログイン |
導入方法で利用したログイン方法はLoginWithCustomIDです。
var request = new LoginWithCustomIDRequest { CustomId = "GettingStartedGuide", CreateAccount = true}; PlayFabClientAPI.LoginWithCustomID(request, OnLoginSuccess, OnLoginFailure);
導入方法で紹介したコードでは"GettingStartedGuide"という文字列をCustomIdとして指定しログインしていたというわけです。
試しにCustomIdを任意の文字列に変更し、CreateAccountをtrueにして実行すると新しくPlayerが作成されることが確認できるはずです。
Playersの該当Player内、Overviewの中にあるIdentitiesを見ると、正しくCustomIdが任意の文字列でLinkされていることがわかります。
UnityでPlayFabにEmailとPasswordでログインする
Emailでログインする際にはまずPlayFab用のアカウントを作成させる必要があります。 理由としては、LoginWithEmailAddress()だとCreateAccountが反映されずアカウントが作成されないためです。
PlayFabClientAPI.RegisterPlayFabUser()を使用しアカウントを作成、登録します。
using PlayFab; public void PressRegisterButton() { var RegisterData = new RegisterPlayFabUserRequest() { TitleId = "****", Email = "*******@****", Password = "********", Username = "******" }; PlayFabClientAPI.RegisterPlayFabUser(RegisterData, result => { Debug.Log("Congratulations, you made your PlayFab account!"); }, error => Debug.Log(error.GenerateErrorReport())); }
TitleIdにはTitleIdを、Email,Password,Usernameには任意のString型を設定します。
RegisterPlayFabUserRequestには次の項目を設定することができます。
RegisterPlayFabUserRequest | |
---|---|
DisplayName | 対象TitleでのPlayerの表示名(3~25文字) |
登録する際のEmailアドレス | |
EncryptedRequest | Titleの公開RSAキーで暗号かされたBase64でエンコードされたBody |
InfoRequestParameters | ユーザーに返す情報のフラグ |
Password | PlayFabのパスワード(6~100文字) |
PlayerSecret | APIリクエストシグネチャの検証用 |
RequireBothUsernameAndEmail | usernameパラメータとemailパラメータの両方を必要とするかどうかのフラグ |
TitleId* | 該当するTitleID |
Username | PlayFabのアカウントユーザー名(3~20文) |
レスポンスでは次のものが返ってきます。
RegisterPlayFabUserResult | |
---|---|
EntityToken | ログインフラグがtrueの場合、ログインして返ります |
PlayFabId | 新規作成されたアカウントのPlayFabのID |
SessionTicket | 現在のセッションでのPlayerトークン |
SettingForUser | ユーザー固有の設定 |
Username | PlayFabでのユーザー名 |
これで、アカウントの作成ができました。
次にEmailとPasswordでログインする方法を紹介します。
using PlayFab; public void PressLoginButton() { var LoginData = new LoginWithEmailAddressRequest() { TitleId = "****", Email = "********@********", Password = "******", }; PlayFabClientAPI.LoginWithEmailAddress(LoginData, result => { Debug.Log("Congratulations, you made your first successful API call!"); }, error => Debug.Log(error.GenerateErrorReport())); }
RegisterしたTitleId,Email,Passwordを入れてリクエストすることでログインすることができます。
PlayFabでVirtual Currencyを使用してCatalogから買い物をする
今回はUnityでのVirtual Currencyを使用してCatalogからの買い物について書きます。
PlayFabの導入部分はこちら
Virtual Currencyの取得方法はこちら
PlayFabのCatalogとは
PlayFab内の仮想アイテムを定義するもので、PlayerがItemを購入するために必要になります。
CatalogにはItemの購入(Virtual Currency/Real Money)、セールス機能が付いたItemショップStores、ランダムな結果を出力するDrop Tablesなど様々な機能があります。
詳しくは公式のCatalogsドキュメントをみると何ができるかが書いてあります。
Catalogの作成とItemの作成
PlayFabのEconomyからCatalogsのタブを選択し、NEW CATALOGを選択します。
入力する項目は2つです。
New Catalog | |
---|---|
Catalog version* | Catalogの名前 |
Make Primary catalog | チェックボックス |
Make Primary catalogはTrueにすることで、作成するCatalogを主要なバージョンのCatalogとして設定することができます。 これは後で変更することもできます。
次にItemを作成しCatalogに追加します。
PlayFabのEconomyからCatalogsのタブを選択し、先ほど作成したCatalogの名前を選択します。その後NEW ITEMを選択することでItemを新規で作成することができます。
Itemには次の項目を設定することができます。
New Catalog Item | |
---|---|
Item ID* | Itemの内部ID |
Item class | Catalog管理用の識別子 |
Tags | Catalog管理用のタグ |
Item image URL | Itemの画像URL |
Display name | Itemの表示名 |
Description | Itemの説明 |
Is stackble | ItemがInventoryに1つのみ登録され数量が増える |
Is tradable | Trade APIでItemの交換を可能にする |
is a token for character crearion | GrantCharacterToUserなどで使用するTokenかどうか |
CONSUMABLE | 下で説明 |
PRICES | 使用するVirtual Currency(RM)と価格を設定 |
CUSTOM DATA | 自由に設定できるData |
CONSUMABLEは”Consumable”を選択することでItemを消費する設定になり、また次のように設定できます。
Consumable | |
---|---|
By count | 使用できる個数 |
By time | 使用期間 |
Time group name | 消費時間を共有するグループ |
UnityでCatalogを取得する
UnityではPlayFabClientAPI.GetCatalogItems()を使用することでCatalogを取得することができます。 例えば次のようなコードです。
using PlayFab; public void GetCatalogItems() { PlayFabClientAPI.GetCatalogItems(new GetCatalogItemsRequest(), result => { var itemList = result.Catalog; }, error => Debug.Log(error.GenerateErrorReport())); }
GetCatalogItems()を使用してGetCatalogItemsRequest()に何も指定しない場合にはPrimaryのCatalogが呼ばれます。 指定したCatalogを呼びたい場合はGetCatalogItemsRequest()のCatalogVersionを指定してあげることで呼ぶことができます。
UnityでVirtual Currencyを使用してCatalogから買い物をする
UnityではPlayFabClientAPI.PurchaseItem()を使用することでCatalogからItemを購入することができます。 例えば次のようなコードです。
public void BuyItem() { PlayFabClientAPI.PurchaseItem(new PurchaseItemRequest { ItemId = "itemID", VirtualCurrency = "**", Price = *** },result => { },error => Debug.Log(error.GenerateErrorReport())); }
PurchaseItemRequest内のItemIDには作成したItem IDを、VirtualCurrencyには購入するために使うVirtualCurrencyの通貨コードを、Priceには価格を入れることで買い物が行われます。
GetCatalogItems()と同様でCatalogVersionを指定しなければ最新のPrimaryのCatalogが呼ばれます。
PlayFabでVirtual Currencyの取得や増減をする
今回はUnityでのVirtual Currencyの取得について書きます。
PlayFabの導入部分はこちら
PlayFabのVirtual Currencyとは
Virtual Currency、翻訳すると"仮想通貨"になりますが、マイニングをしたりするわけではありません。
PlayFabを使用したTitle上で使用することができる通貨になります。
Virtual Currencyは主にCatalog上にあるItemの購入や特定の行動に対するコストとして支払うなどのことができます。
ただし、現在のPlayFabのバージョンではItemとVirtual Currencyの直接のTradeは不可能となっています。
※ドキュメントにはTradeがβ機能であるため今後追加の予定はあるとの記述があります
Virtual Currencyの発行
PlayFabのEconomy内にあるタブからCurrencyを選択後、NEW CURRENCYを選択します。
New Currencyでは次の項目を設定します。*マークは必須項目です。
New Currency | |
---|---|
Currency code* | 半角英大文字の通貨コード |
Display name* | 通貨の表示名 |
Initial deposit | 初期に配布される通貨量 |
Recharge rate | 自動で配布される通貨レート |
Recharge maximum | 自動で配布される通貨の最大値 |
Currency codeにおいて"RM"はリアルマネー用に予約されているため使用することができません。
Recharge rateは設定されたレートを24時間かけて均等に分割され配布されます。
Recharge rateとRecharge maximumは0に設定することで通貨の自動配布をオフにすることができます。
必要な項目を入力後、SAVE CURRENCYを選択し、作成した通貨を保存します。
Virtual Currencyの手動設定
Virtual Currencyは手動で設定し、特定Playerの所持している量を変更することもできます。
PlayFabのPlayersからVirtual Currencyを配布したいPlayerを選択し、上部タブからVirtual Currencyを選択。配布するVirtual Currencyを選択します。
ここでは次の項目を入力します。
MODIFY VIRTUAL CURRENCY | |
---|---|
Amout* | 変更後の通貨量 |
Reason | 変更理由 |
Comment | コメント |
所持通貨の変更をした場合はSAVE VIRTUAL CURRENCYを選択し保存します。
変更された記録はPlayerの上部タブにあるPlayStreamに記録されます。
UnityでVirtual Currencyの取得
Virtual Currencyを取得するにはPlayFabClientAPI.GetUserInventory()を使用します。
PlayFabClientAPI.GetUserInventory()のレスポンスにはItemなど様々な項目がありますが、今回はVirtual Currencyの取得をするコードの例を記載します。
using PlayFab; public void GetVirtualCurrency() { PlayFabClientAPI.GetUserInventory(new GetUserInventoryRequest(), result => { var virtualCurrency = result.VirtualCurrency["**"]; },error => Debug.Log(error.GenerateErrorReport())); }
現在ログインしているPlayerの所持金を取得する例になります。
VirtualCurrencyはDictionary型になっているためKeyとなる"**"に通貨コードを指定します。
UnityでVirtual Currencyの増加
Unity上でPlayerのVirtual Currencyを増加させるにはPlayFabClientAPI.AddUserVirtualCurrency()を使用します。
※AddUserVirtualCurrency()を使用するには設定で有効にする必要があります。デフォルトでは無効となっています。
設定はPlayFabのSettings→API Features内にある"Allow client to add virtual currency"のチェックボックスをTrueにすることで有効にできます。
using PlayFab; public void AddVirtualCurrency() { PlayFabClientAPI.AddUserVirtualCurrency(new AddUserVirtualCurrencyRequest() { VirtualCurrency = "**", Amount = 100 },result =>{},error => Debug.Log(error.GenerateErrorReport())); }
VirtualCurrencyはKeyとなる"**"にString型で通貨コードを指定します。 Amountには増加させたい通貨量をint型で入れます。
レスポンス結果は次のようになります。
ModifyUserVirtualCurrencyResult | |
---|---|
Balance | 変更後の所持通貨量 |
BalanceChange | 所持通貨の変化量 |
PlayFabId | 通貨量を変更したPlayerのID |
VirtualCurrency | 通貨量を変更した通貨コード |
UnityでVirtual Currencyの減少
Unity上でPlayerのVirtual Currencyを減少させるにはPlayFabClientAPI.SubtractUserVirtualCurrency()を使用します。
※SubtractUserVirtualCurrency()を使用するには設定で有効にする必要があります。デフォルトでは無効となっています。
設定はPlayFabのSettings→API Features内にある"Allow client to subtract virtual currency"のチェックボックスをTrueにすることで有効にできます。
using PlayFab; public void SubVirtualCurrency() { PlayFabClientAPI.SubtractUserVirtualCurrency(new SubtractUserVirtualCurrencyRequest() { VirtualCurrency = "**", Amount = 100 },result =>{},error => Debug.Log(error.GenerateErrorReport())); }
VirtualCurrencyはKeyとなる"**"にString型で通貨コードを指定します。 Amountには減少させたい通貨量をint型で入れます。
レスポンス結果は次のようになります。
ModifyUserVirtualCurrencyResult | |
---|---|
Balance | 変更後の所持通貨量 |
BalanceChange | 所持通貨の変化量 |
PlayFabId | 通貨量を変更したPlayerのID |
VirtualCurrency | 通貨量を変更した通貨コード |
ModifyUserVirtualCurrencyResultのBalanceChangeはInt32型になっているため最大値は2,147,483,647となり、それを超える変化量は破棄されるため注意が必要です。
PlayFabでPlayerの情報やUserDataを取得する
今回はUnityでのPlayerの取得を書きます。
PlayFabの導入部分はこちら
PlayFabにおけるPlayerとは
PlayFabを使用するうえで必要不可欠な仕組みです。 ログインやコミュニケーション機能があるほか、セグメンテーション、LiveOps、アナリティクスなどでデータを閲覧する主となるものになります。
FacebookやSteam、Android、Nintendo Switchなどの本体とリンクして簡易なログインを可能にする機能などもあります。 (個人的にはTwitterも欲しい…)
Playerの作成
PlayFabのPlayersからNEW PLAYERを選択します。 New playerを作成するにはCustom IDが自動で入力されます。
このCustom IDを使用することでログインするLoginWithCustomIDなどがあります。 もし任意のCustom IDを使用したい場合にはUNLOCKをクリックしCustom IDを入力してください。
作成したPlayerをクリックするとPlayerに関する様々なデータが閲覧できます。
Playerの情報をUnityで取得する
Unityで先ほど作成したPlayerの情報を取得してみます。 例えば次のコードで取得することができます。
using PlayFab; private void GetProfile(){ PlayFabClientAPI.GetPlayerProfile(new GetPlayerProfileRequest() { PlayFabId = "" }, result => { var playerProfile = result.PlayerProfile; }, error => Debug.Log(error.GenerateErrorReport())); }
取得できるPlayerProfileはPlayFab.Client.Models.PlayerProfileModelとなっており次の要素を持っています。
PlayFab.Client.Models.PlayerProfileModel | |
---|---|
AdCampaignAttributions | Playerが要因となった広告キャンペーンのリスト |
AvatarUrl | Playerのアバター画像のURL |
BannedUntil | PlayerがBANされている場合の終了日付 |
ContactEmailAddresses | Playerに紐づけられているEmailのリスト |
Created | Playerが作成された日時 |
DisplayName | Playerの表示名 |
LastLogin | Playerが最後に該当TitleにログインしたUTC時間 |
LinkedAccounts | Plyerアカウントにリンクされている認証システムのリスト |
Locations | Playerがログインしている場所のリスト |
Memberships | PlayerのMembershipのリストと期限切れかどうか |
Origination | Playerの口座 |
PlayerId | PlayerのPlayFabのユニークID |
PublisherId | Playerが所属するPublisherID |
PushNotificationRegistrations | Playerのプッシュ通知を送信するためのエンドポイントリスト |
Statistics | Playerのリーダーボードのリスト |
Tags | Playerのセグメンテーション上でのタグのリスト |
TitleId | PlayerのProfileが適応されるTitleID |
TotalValueToDateInUSD | いままで支払ったPlayerの現金の総額 |
ValuesToDate | 現金を使用して支払ったPlayerの購入リスト |
独自のPlayer Dataを設定し取得する
PlayerにはDataと呼ばれる変数を設定することができます。 PlayFabの特定Playerをクリックし、Player Data(Title)を選択します。 ここでDictionary型の設定をすることができ、これを取得することができます。
Player Dataには次の三種類があります。
Player Data | |
---|---|
PLAYER DATA | Clientからも読み書きできるデータ |
READ ONLY DATA | Clientから読み込みのみできるデータ |
INTERNAL DATA | Playerの内部データ,Clientに公開しない |
今回は例としてPLAYER DATAのKeyに"Age"、Valueに"25"と入れてみます。 右下にNew、Changes、Removeがあるので変更数が正しいことを確認したらSAVE PLAYER DATAを選択します。
次にこのデータをUintyで取得します。取得にはGetUserData()を使用します。
例えば次のようなコードで取得することができます。
public void GetPlayerData() { PlayFabClientAPI.GetUserData(new GetUserDataRequest { PlayFabId = "*****************" }, result => { Debug.Log(result.Data["Age"].Value); }, error => Debug.Log(error.GenerateErrorReport()));
返ってくるDataはDictionary型になるので"Age"のValueを見るようなコードになっています。 実行してConsoleに"25"と表示されれば成功です。
PlayFabでGroupの取得をする
今回はUnityでのGroupの取得について書きます。
PlayFabの導入部分はこちら
PlayFabにおけるGroupとは
Group機能というものがPlayFabに実装されています。これはゲームなどでギルドやクランなどの”特定の仲間で集まったグループ”にあたるものです。 PlayFabではEntity Groupsというシステム上にギルドを構築します。
Groupには例えばグループの作成、メンバーの追加、削除、役職の設定、招待などの機能があります。
詳しくは公式のGroup APIのドキュメントをみると何ができるかが書いてあります。
Groupの作成
Unityで取得するためのGroupを作成します。 PlayFabのGroupsからNEW GROUPを選択します。
New Group画面ではそれぞれ次のものを入力します。
New Group | |
---|---|
Group name | グループの名前 |
Entity type | 管理者にするPlayerのType |
Entity ID | 管理者にするPlayerのEntity ID |
CREATE GROUPをするためにはすべて入力する必要があります。 Entity IDを入力するためには最低でも一人のPlayerが必要になります。
Entity typeで"title_player_account"を選択し、Entity IDにはPlayersの中からPlayerを選択し、Overview内のTitle player accountにあるPlayer ID(title)を入力します。
入力後CREATE GROUPを選択することでGroupを作成することができます。
Groupの取得
例えばUnityでGroupの名前を取得するには次のようなコードで取得します。
using PlayFab; private void GetGroupData(){ PlayFabGroupsAPI.GetGroup(new GetGroupRequest { Group = new PlayFab.GroupsModels.EntityKey() { Id = "****************" }, }, result => { var groupName = result.GroupName; }, error => Debug.Log(error.GenerateErrorReport())); }
Idには作成したGroupのIDを入れます。これで指定したIdのGroupのデータを取得できます。 Group関係のものはPlayFabClientAPIではなくPlayFabGroupsAPIにあることに注意です。
GetGroup()で取得できるデータは次の通りです。
GetGroup() Result | |
---|---|
Group | PlayFab.GroupsModels型、IdとTypeを格納 |
GroupName | Groupの名前 |
MemberRoleeId | メンバーの初期RoleのID |
AdminRoleId | 管理者のID |
Roles | Roleと名前のDictionary |
Created | Groupを作成したサーバー上の日時 |
ProfileVersion | Groupのバージョン |
ログインしているPlayerの所属しているGroup一覧の取得
ログイン中のPlayerが所属しているGroup一覧を取得するにはListMembership()を使用し、例えば次のようなコードで取得します。
using PlayFab; private void GetGroupData(){ PlayFabGroupsAPI.ListMembership(new ListMembershipRequest(), result => { var groupList = result.Groups; }, error => Debug.Log(error.GenerateErrorReport())); }
PlayFabで最新のNewsを取得したり取得件数を変更する
今回はUnityでのNewsの取得を書きます。
PlayFabの導入部分はこちら
PlayFabの"Content"から"NEW TITLE NEWS"を押し新規でNewsを作成します。
Newsの入力項目は次のようになっています。
Title content | |
---|---|
Title | Newsのタイトル |
Timestamp | Newsのタイムスタンプ |
Status | Newsの状態 |
Body | Newsの本文 |
今回は公開するのでStatusを"Published"にし、TitleとBodyを入力後"Save Title News"を押します。
基本的にPlayFabはHTTPをPOSTしリクエストすることでレスポンスを貰えますが、UnityにはClassicでメソッドが用意されています。
GetTitleNews()でNewsを取得できます。 リクエストすると下記のプロパティを持ったList型のNewsが返ってきます。
Newsのプロパティ | |
---|---|
Body | Newsの本文 |
NewqId | NewsのユニークID |
Timestamp | Newsのタイムスタンプ |
Title | Newsのタイトル |
例えば最新のNewsは次の方法で呼べます。
using PlayFab; private void GetNews(){ PlayFabClientAPI.GetTitleNews(new GetTitleNewsRequest(), result => { Debug.Log("Got latest News!"); var newsTitle = result.News[0].Title; var newsBody = result.News[0].Body; }, error => Debug.LogError(error.GenerateErrorReport())); }
GetTitleNews()は標準では10件のニュースを取得するようになっています。 もしそれ以上のニュースを取得したい場合はGetTitleNewsRequest()内でCountに入れてリクエストすることで件数を変更できます。
例えばNewsを25件取得したい場合は
using PlayFab; private void GetNews(){ PlayFabClientAPI.GetTitleNews(new GetTitleNewsRequest() { Count = 25 }, result => { Debug.Log("Got 25 News!"); var newsTitle = result.News[result.News.Count - 1].Title; var newsBody = result.News[result.News.Count - 1].Body; }, error => Debug.LogError(error.GenerateErrorReport())); }
このようなリクエストの書き方で取得することができます。