PC용 Google Play 게임즈 게임 패키징

PC용 Google Play 게임즈는 표준 Android 런타임 환경을 제공하므로 x86 또는 x86-64 바이너리가 포함되어 있는지 확인하는 것 외에는 모바일 또는 PC용 게임 패키징 간에 차이가 없습니다. 가능하면 모바일 빌드와 마찬가지로 PC에서도 동일한 APK나 App Bundle을 사용해야 합니다.

모바일 및 PC용 Google Play 게임즈에서 하나의 패키지를 사용하는 경우 런타임에 PC용 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");