Упаковать игру для Google Play Games на ПК

Поскольку Google Play Games на ПК предоставляет стандартную среду выполнения Android, нет никакой разницы между упаковкой игры для мобильных устройств и ПК, за исключением необходимости включения бинарных файлов x86 или x86-64. По возможности, следует использовать тот же APK-файл или App Bundle на ПК, что и для мобильных сборок.

При использовании одного пакета для мобильных устройств и Google Play Games на ПК лучше всего включать специфические функции Google Play Games на ПК во время выполнения, например, путем определения наличия клавиатуры :

Котлин

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" :

Котлин

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");