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

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

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

Котлин

val hasKeyboard = resources.configuration.keyboard == KEYBOARD_QWERTY

Ява

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

С#

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

Ява

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

С#

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