Crea un pacchetto di un gioco per Google Play Giochi su PC

Poiché Google Play Giochi su PC offre un ambiente di runtime Android standard, non ci sono differenze tra la pacchettizzazione del tuo gioco per dispositivi mobili o PC al di fuori dell'assicurazione di includere programmi binari x86 o x86-64. Se possibile, su PC devi utilizzare lo stesso APK o App Bundle che utilizzi per le build per dispositivi mobili.

Se utilizzi un pacchetto per dispositivi mobili e Google Play Giochi su PC, è meglio attivare funzionalità specifiche di Google Play Giochi su PC in fase di runtime rilevando la presenza di una tastiera:

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

In alternativa, controlla la funzionalità di 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");