Dado que Google Play Juegos para PC proporciona un entorno estándar de Android Runtime, no hay diferencias entre empaquetar tu juego para dispositivos móviles o para PC más allá de asegurarte de incluir objetos binarios x86 o x86-64. Cuando sea posible, debes usar el mismo APK o paquete de aplicación en PC que en las compilaciones para dispositivos móviles.
Cuando se usa un paquete en dispositivos móviles y Google Play Juegos para PC, se recomienda habilitar funciones específicas de Google Play Juegos para PC en el tiempo de ejecución detectando la presencia de un teclado:
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
Otra forma de habilitarlas es verificando la función del sistema "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");