Поскольку Google Play Игры на компьютере предоставляют стандартную среду выполнения Android, нет никаких различий между упаковкой игры для мобильных устройств или ПК, за исключением того, что вы должны включить двоичные файлы x86 или x86-64. По возможности используйте для ПК тот же APK-файл или набор App Bundle, что и для мобильных сборок.
Если вы используете один пакет для мобильных устройств и Google Play Игр на компьютере, лучше всего включать функции, предназначенные для Google Play Игр на компьютере, во время выполнения. Для этого можно проверять наличие клавиатуры:
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");