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