PC 版 Google Play Games 用にゲームをパッケージ化する

PC 版 Google Play Games では標準の Android ランタイム環境が提供されるため、x86 または x86-64 バイナリが含まれていることを確認する以外、ゲームをモバイル用にパッケージ化する場合と PC 用にパッケージ化する場合で違いはありません。可能であれば、PC でもモバイルビルドと同じ APK または App Bundle を使用してください。

モバイルと PC 版 Google Play Games で 1 つのパッケージを使用する場合は、キーボードの存在を検出することで、実行時に PC 版 Google Play Games 固有の機能を有効にすることをおすすめします。

Kotlin

val hasKeyboard = resources.configuration.keyboard == KEYBOARD_QWERTY

Java

boolean hasKeyboard = getResources().getConfiguration().keyboard == KEYBOARD.QWERTY

C#

var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
var resources = currentActivity.Call<AndroidJavaObject>("getResources");
var configuration = resources.Call<AndroidJavaObject>("getConfiguration");
var keyboard = configuration.Get<int>("keyboard");
var hasKeyboard == 2; // Configuration.KEYBOARD_QWERTY

または、"com.google.android.play.feature.HPE_EXPERIENCE" システム機能をチェックします。

Kotlin

var isPC = packageManager.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

Java

PackageManager pm = getPackageManager();
boolean isPC = pm.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

C#

var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
var packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");
var isPC = packageManager.Call<bool>("hasSystemFeature", "com.google.android.play.feature.HPE_EXPERIENCE");