はじめに
PlayFab Party を導入する際に注意しないといけない内容をまとめておきたいと思います。
※ちなみに Mac 用の dll が用意されていないため Mac 環境の Unity エディターでは使用することが出来ません。
Unity のセットアップ
Unity プラグインのインポート
上記から最新版の unitypackage をダウンロードしてインポートします。
※ここで注意しないといけないのは PlayFab Party のパッケージ内に PlayFab SDK も含まれています。もし、PlayFab Party をインポートする前に最新の PlayFab SDK をインポートしている場合は PlayFab Party の方に含まれる PlayFab SDK の方が古い場合がありますので、上書きする際には注意してください。
Unity 側の設定
Unity で使用するには『Allow 'unsafe' Code』を有効にする必要があります。
Android 用の設定
Android のビルドの際に以下のようなエラーが表示される事があります。
これは PlayFab Party をインポートすると Custrom Main Gradle Templete が有効になりますが、使用している Unity のバージョンによっては mainTemplete.gradle の設定が合っていないため発生します。
これを解消するには Assets/Plugins/Android/mainTemplete.gradle を以下のように書き換えます。
aaptOptions {
// この行を追加
noCompress = ['.ress', '.resource', '.obb'] + unityStreamingAssets.tokenize(', ')
ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
}**PACKAGING_OPTIONS**
また以下のエラーが発生する場合は gradle.properties の更新が必要になります。
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine the dependencies of task ':launcher:lintVitalRelease'.
> This project uses AndroidX dependencies, but the 'android.useAndroidX' property is not enabled. Set this property to true in the gradle.properties file and retry.
Gradle ファイルを出力の際に AndroidX と Jetifier を有効にする設定を gradle.properties に追加します。
このエラーが発生するのは PlayFab Party 以外のプラグインで gradle.properties を出力しているのが原因です。
public int callbackOrder
{
// 最後に実行されるようにする
get => 999;
}
// IPostGenerateGradleAndroidProject を継承したクラスに実装する
public void OnPostGenerateGradleAndroidProject(string path)
{
// path には gradle の出力先が渡されてくるが gradle.properties はその上の階層に配置されている
using (var stream = File.AppendText(Path.Combine(path, "..", "gradle.properties"))) {
stream.WriteLine("");
stream.WriteLine("android.useAndroidX=true");
stream.WriteLine("android.enableJetifier=true");
}
}
iOS 用の設定(追記)
PlayFab Party ではデフォルトでボイスチャットが有効になっているため、Unity の ProjectSettings の Microphone Usage Description に説明文を入れておかないと実行時にクラッシュします。
おわりに
導入の際にはこれぐらいの問題点ですぐにマルチプレイが実装できますので一度 PlayFab Party の導入を検討してみてはいかがでしょうか?