Ein Spiel für Google Play Spiele auf dem PC verpacken

Da Google Play Spiele auf dem PC eine standardmäßige Android-Laufzeitumgebung bietet, gibt es keine Unterschiede beim Paketieren Ihres Spiels für Mobilgeräte oder PCs, außer dass Sie x86- oder x86-64-Binärdateien einschließen müssen. Verwenden Sie nach Möglichkeit dasselbe APK oder App-Bundle auf dem PC wie für mobile Builds.

Wenn Sie ein Paket für Mobilgeräte und Google Play Spiele auf dem PC verwenden, sollten Sie die spezifischen Funktionen von Google Play Spiele auf dem PC zur Laufzeit aktivieren. Dazu können Sie entweder die Anwesenheit einer Tastatur erkennen:

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

Oder du kannst nach der Systemfunktion "com.google.android.play.feature.HPE_EXPERIENCE" suchen:

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