Поскольку 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");