สร้างแพ็กเกจเกมสำหรับ Google Play Games บน PC

เนื่องจาก Google Play Games on PC มีสภาพแวดล้อมรันไทม์ Android มาตรฐาน การแพ็กเกมสำหรับอุปกรณ์เคลื่อนที่หรือ PC จึงไม่มีความแตกต่างกัน ยกเว้นการตรวจสอบว่าคุณได้รวมไบนารี x86 หรือ x86-64 ไว้แล้ว เมื่อเป็นไปได้ คุณควรใช้ APK หรือ App Bundle บน PC เดียวกันกับที่ใช้สร้างรุ่นอุปกรณ์เคลื่อนที่

เมื่อใช้แพ็กเกจเดียวในอุปกรณ์เคลื่อนที่และ Google Play Games บน PC วิธีที่ดีที่สุดคือเปิดใช้ฟีเจอร์เฉพาะของ Google Play Games บน PC ขณะรันไทม์โดยตรวจหาว่ามีแป้นพิมพ์อยู่หรือไม่ ดังนี้

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