เริ่มต้นใช้งาน Unity และ Google Play Games สำหรับ PC

1. บทนำ

โลโก้ Google Play Games

อัปเดตล่าสุด: 2022-10-18

คุณเตรียมเกมสำหรับ Google Play Games บน PC อย่างไร

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

สิ่งที่คุณจะได้เรียนรู้

Codelab นี้ครอบคลุมส่วนพื้นฐานของรายการตรวจสอบข้อกำหนดเพื่อเริ่มต้นใช้งานเกม และช่วยคุณเตรียมเกม Unity ของคุณเองสำหรับ Google Play Games บน PC การผสานรวมที่เจาะลึกมากขึ้น เช่น การลงชื่อเข้าใช้ Play Games และ Play Integrity API จะไม่ครอบคลุม

  • วิธีสร้างสำหรับสถาปัตยกรรม x86 จาก Unity
  • วิธีทดสอบและติดตั้งใช้งานในโปรแกรมจำลอง Google Play Games
  • วิธีแก้ไขอินเทอร์เฟซผู้ใช้ให้ดูดีบนคอมพิวเตอร์
  • วิธีตรวจหาว่าคุณกำลังเรียกใช้ในโปรแกรมจำลอง Google Play Games และปรับเกมให้สอดคล้องกัน

สิ่งที่คุณต้องมี

2. ตั้งค่า

เปิดหรือสร้างโปรเจ็กต์ใหม่

  1. สร้างโปรเจ็กต์ใหม่โดยใช้เกมแพลตฟอร์ม 2 มิติขนาดเล็ก หรือเปิดโปรเจ็กต์ของคุณเอง

The Unity

  1. จากโปรเจ็กต์ ให้เลือกไฟล์ -> การตั้งค่าการสร้าง และตรวจสอบว่าคุณได้ตั้งค่าให้สร้างสำหรับ Android แล้ว

ภาพหน้าจอของ Unity

3. เตรียมโปรแกรมจำลอง Google Play Games

เริ่มต้นด้วยการดาวน์โหลดโปรแกรมจำลอง

หลังจากติดตั้งแล้ว คุณควรเห็นเดสก์ท็อป Android ในหน้าต่าง

ภาพหน้าจอของหน้าต่างโปรแกรมจำลอง Google Play Games หน้าจอหลักของ Android ปรากฏอยู่

นี่คือสภาพแวดล้อม Android ประสิทธิภาพสูงที่มีฟีเจอร์ครบถ้วนซึ่งเหมาะสำหรับการพัฒนาเกม โดยควรปรากฏใน Android Debug Bridge (adb) เป็นอุปกรณ์ใน localhost ดังนี้

❯ adb devices
List of devices attached
localhost:6520  device

คุณต้องใช้ adb เวอร์ชันล่าสุดเพื่อตรวจหาโปรแกรมจำลอง เวอร์ชันที่มาพร้อมกับ Android Studio ใช้งานได้ แต่ adb ที่มาพร้อมกับ Unity อาจใช้งานไม่ได้ โปรแกรมจำลองมาพร้อมกับเวอร์ชันที่เข้ากันได้ และคุณจะดูได้ที่ C:\Program Files\Google\Play Games Developer Emulator\current\emulator คุณอาจต้องติดตั้ง Android Studio และใช้เพื่อจัดการ Android SDK เพื่อประสบการณ์การใช้งานที่ดีที่สุดสำหรับนักพัฒนาแอป

หากโปรแกรมจำลองยกเลิกการเชื่อมต่อจาก adb ให้เชื่อมต่ออีกครั้งจากบรรทัดคำสั่งดังนี้

adb connect localhost:6520

4. กำหนดค่า Unity เพื่อสร้างและติดตั้งใช้งานในโปรแกรมจำลองโดยตรง (ไม่บังคับ)

adb เวอร์ชันที่มาพร้อมกับ Unity อาจใช้กับโปรแกรมจำลองไม่ได้ หากต้องการตรวจสอบ ให้เลือกไฟล์ -> การตั้งค่าการสร้าง แล้วตรวจสอบกล่องโต้ตอบอุปกรณ์ที่เรียกใช้เพื่อดูว่าอุปกรณ์ของคุณอยู่ในรายการหรือไม่

เรียกใช้อุปกรณ์ใน

คุณอาจเลือกกำหนดค่า Unity ให้ติดตั้งใช้งานในโปรแกรมจำลอง Google Play Games โดยตรง หรือสร้าง APK แล้วติดตั้งใช้งานด้วยตนเองด้วย adb install ทั้งนี้ขึ้นอยู่กับโปรเจ็กต์ กระบวนการสร้าง และระดับความสะดวก การติดตั้งใช้งานด้วยตนเองต้องมีการเปลี่ยนแปลงน้อยที่สุด แต่อาจทำให้รอบการทำซ้ำช้าลง

คุณสามารถติดตั้งใช้งานในโปรแกรมจำลองได้โดยตรงด้วย 2 ขั้นตอนต่อไปนี้

  1. กำหนดค่า Unity ให้ใช้ Unity SDK อื่น ซึ่งควรเป็น SDK ที่ติดตั้งโดย Android Studio
  2. อัปเดตเวอร์ชันเครื่องมือบิลด์เพื่อหลีกเลี่ยงข้อบกพร่องใน Unity

เนื่องจาก Android SDK เวอร์ชันที่มาพร้อมกับ Unity อาจตรวจไม่พบโปรแกรมจำลอง คุณจึงต้องใช้ Android Studio เพื่อติดตั้ง SDK เวอร์ชันล่าสุด

  1. เปิด Android Studio แล้วเลือกแก้ไข -> ค่ากำหนด -> เครื่องมือภายนอก
  2. ยกเลิกการเลือก Android SDK Tools Installed with Unity แล้วระบุเส้นทางการติดตั้ง Android Studio (โดยปกติคือ AppData/Local/Android/sdk) อย่าแตะต้องตัวเลือก Android NDK

ภาพหน้าจอของ

เมื่อรีเฟรชอุปกรณ์ที่เชื่อมต่อ คุณควรเห็น Google HPE device (localhost:6520) ปรากฏในหน้าต่างบิลด์

ภาพหน้าจอของ

คุณอาจต้องเปลี่ยนเวอร์ชันเครื่องมือบิลด์ด้วย ทั้งนี้ขึ้นอยู่กับสถานะของข้อบกพร่องนี้และเวอร์ชัน Unity ที่ใช้ โดยตรวจสอบว่าคุณกำลังสร้าง mainTemplate.gradle และ launcherTemplate.gradle

  1. เปิดหน้าต่างการตั้งค่าโปรเจ็กต์ไปที่การตั้งค่าเพลเยอร์ แล้วหาส่วน Publishing Settings
  2. เลื่อนลงไปที่ตัวเลือกสร้าง แล้วเลือก "Custom Main Gradle Template" และ "Custom Launcher Gradle Template" ซึ่งจะสร้างไฟล์ Gradle ทั้ง 2 ไฟล์ภายใต้ Assets\Plugins\Android\

ภาพหน้าจอของ

  1. แทนที่อินสแตนซ์ของสตริง **BUILDTOOLS** ด้วย 30.0.0 ในทั้ง 2 ไฟล์ ส่วนของโค้ดควรมีลักษณะดังนี้
android {
    compileSdkVersion **APIVERSION**
    buildToolsVersion '30.0.0'

5. ติดตั้งใช้งานใน Chromebook (ไม่บังคับ)

คุณเริ่มพัฒนาเกมสำหรับ Google Play Games ได้โดยไม่ต้องมีสิทธิ์เข้าถึงโปรแกรมจำลอง Google Play Games โดยใช้อุปกรณ์ ChromeOS Chromebook มีแป้นพิมพ์และเมาส์ มีหน้าจอขนาดใหญ่ และพร้อมให้บริการในการกำหนดค่า x86 เช่นเดียวกับ Google Play Games บน PC เราจะใช้ปลั๊กอิน Unity Logcat ของ Android กับ Chromebook

  1. เปิด Package Manager แล้วค้นหา Android Logcat ในส่วน Unity Registry

หน้าต่าง Package Manager พร้อม

นอกจากนี้ คุณยังต้องกำหนดค่า Chromebook สำหรับการพัฒนา Android ด้วย เริ่มต้นด้วยการเปิดใช้ Linux

  1. เลือกการตั้งค่า -> นักพัฒนาซอฟต์แวร์ -> Linux

รูปภาพเคลื่อนไหวแสดงวิธีเปิดใช้การรองรับ Linux  เลือก "นักพัฒนาแอป" ในหน้าต่างการตั้งค่า จากนั้น

จากนั้นเปิดใช้การแก้ไขข้อบกพร่อง ADB

  1. เลือกการตั้งค่า -> นักพัฒนาแอป -> สภาพแวดล้อมในการพัฒนาซอฟต์แวร์ Linux -> พัฒนาแอป Android -> เปิดใช้การแก้ไขข้อบกพร่อง ADB

เปิดใช้การแก้ไขข้อบกพร่อง ADB จากเมนูนักพัฒนาแอป

นอกจากนี้ คุณยังต้องทราบที่อยู่ IP ของ Chromebook ด้วย วิธีที่ง่ายที่สุดในการดำเนินการนี้คือ

  1. คลิกไอคอนข้อมูลเครือข่ายเพื่อดูที่อยู่ IP ของ Chromebook

ภาพหน้าจอของหน้าต่างเครือข่ายที่เปิดอยู่บน Chromebook

คลิกปุ่มข้อมูลเครือข่ายเพื่อแสดงที่อยู่ IP

  1. เลือกหน้าต่าง -> การวิเคราะห์ -> Android Logcat เพื่อเปิดหน้าต่าง Android Logcat

หน้าต่าง> การวิเคราะห์เปิดใน Unity ด้วย

  1. เปิดรายการอุปกรณ์ อาจแสดง No Device หากไม่มีการเชื่อมต่ออยู่

หน้าต่าง Logcat ของ Android แสดงขึ้น โดยเลือกเมนูแบบเลื่อนลงของอุปกรณ์

  1. คลิกตัวเลือกการเชื่อมต่ออื่นๆ แล้วป้อนที่อยู่ IP ของ Chromebook

หน้าต่างการเชื่อมต่ออื่นๆ เปิดอยู่ มีการป้อนที่อยู่ IP

  1. คลิกเชื่อมต่อ คุณควรเห็นหน้าต่างสำเร็จ

กล่องโต้ตอบจะปรากฏขึ้นพร้อมข้อความ

ตอนนี้ Chromebook จะปรากฏในรายการอุปกรณ์ที่เรียกใช้ของ Unity (คุณอาจต้องรีเฟรชหน้าจอก่อน) โดยทำดังนี้

The Unity

ตอนนี้คุณสามารถติดตั้งใช้งานเกมใน Chromebook และเริ่มทดสอบและพัฒนาบนฮาร์ดแวร์ที่คล้ายกับ PC ได้แล้ว

6. ติดตั้งใช้งานบิลด์ทดสอบ

Google Play Games กำหนดให้คุณต้องติดตั้งใช้งานเกมเวอร์ชัน x86 ซึ่งเป็นส่วนหนึ่งของวิธีที่ Google Play Games บรรลุเกณฑ์มาตรฐานด้านประสิทธิภาพบน PC เดสก์ท็อป Unity ทุกรุ่น LTS สามารถสร้างบิลด์ Android ที่รองรับ x86 และ x86-64 (มีป้ายกำกับว่า "ChromeOS") และ Unity เวอร์ชัน 2018 และก่อนหน้าสามารถสร้างบิลด์ x86 ได้ หากต้องการปลดล็อกสถาปัตยกรรมเหล่านี้ คุณต้องเปลี่ยนไปใช้แบ็กเอนด์การเขียนสคริปต์ IL2CPP ก่อน ซึ่งคุณอาจทำอยู่แล้วในเวอร์ชันที่ใช้งานจริงเพื่อรองรับ arm64

  1. เลือกไฟล์ -> การตั้งค่าการสร้างเพื่อเปิดหน้าต่างการตั้งค่าการสร้าง แล้วคลิกการตั้งค่าเพลเยอร์

ภาพหน้าจอของ

  1. ไปที่ส่วนการตั้งค่าอื่นๆ แล้วเปลี่ยนScripting Backendเป็นIL2CPP

ภาพหน้าจอของ

นอกจากนี้ คุณควรเปิดใช้การรองรับ x86 หรือ x86-64 ด้วย หากต้องการจัดส่งในแพลตฟอร์ม Google Play Games คุณจะต้องรองรับ x86 เท่านั้น แม้ว่าเราจะแนะนำให้ใช้ x86-64 ก็ตาม

ภาพหน้าจอของส่วนการกำหนดค่าในการตั้งค่าเพลเยอร์

นอกจากนี้ ไลบรารี Frame Pacing ที่ Unity รวมไว้ยังใช้ร่วมกับ Google Play Games ไม่ได้ และทำให้เกมของคุณขัดข้องเมื่อเปิดตัว

  1. หากต้องการปิดใช้การเว้นระยะเฟรมจากหน้าต่างการตั้งค่าเพลเยอร์ ให้เปิดส่วนความละเอียดและการนำเสนอ แล้วยกเลิกการเลือกการเว้นระยะเฟรมที่เพิ่มประสิทธิภาพ

ภาพหน้าจอ

ตอนนี้คุณก็พร้อมสร้างแล้ว

  1. เปิดหน้าต่างการตั้งค่าการสร้างอีกครั้ง แล้วคลิกสร้างและเรียกใช้ เกมจะปรากฏในหน้าต่างโปรแกรมจำลอง

ภาพหน้าจอของโปรแกรมจำลอง Google Play Games ที่มี

หากคุณไม่สามารถติดตั้งใช้งานเกมได้ ให้ตรวจสอบว่า "อุปกรณ์ Google HPE (localhost:6520)" ปรากฏในรายการ "อุปกรณ์ที่เรียกใช้" หรือไม่ หากไม่มี ให้ตรวจสอบว่า HPE_Dev ทำงานอยู่และคุณเห็นหน้าจอหลักของ Android หากยังไม่ปรากฏในรายการอุปกรณ์ ให้เรียกใช้ adb connect localhost:6520 ด้วย adb.exe ที่คุณใช้อยู่ หากคุณใช้ปลั๊กอิน Android Logcat Unity ให้เลือกเครื่องมือ -> เปิดเทอร์มินัลเพื่อเปิดเทอร์มินัลไปยังไดเรกทอรีที่มี adb.exe เดียวกันกับที่ Unity ใช้

ภาพหน้าจอของ เปิดเทอร์มินัล" ไฮไลต์" style="width: 624.00px" src="img/9101ce3c95fb1aa2.png" srcset="img/9101ce3c95fb1aa2_36.png 36w, img/9101ce3c95fb1aa2_48.png 48w, img/9101ce3c95fb1aa2_72.png 72w, img/9101ce3c95fb1aa2_96.png 96w, img/9101ce3c95fb1aa2_480.png 480w, img/9101ce3c95fb1aa2_720.png 720w, img/9101ce3c95fb1aa2_856.png 856w, img/9101ce3c95fb1aa2_960.png 960w, img/9101ce3c95fb1aa2_1440.png 1440w, img/9101ce3c95fb1aa2_1920.png 1920w, img/9101ce3c95fb1aa2_2880.png 2880w" sizes="(max-width: 840px) 100vw, 856px">

7. ปรับเกมให้เหมาะกับ PC

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

หากต้องการเปลี่ยนตรรกะตามว่าผู้เล่นอยู่ใน Google Play Games หรือ ChromeOS หรือไม่ สคริปต์นี้จะช่วยตรวจหาได้โดยการตรวจสอบHPE_EXPERIENCEฟีเจอร์ของระบบ

using UnityEngine;

public class GoogleDeviceUtilities
{
#if UNITY_ANDROID && !UNITY_EDITOR
    private static AndroidJavaObject PackageManager
    {
        get
        {
            var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
            return currentActivity.Call<AndroidJavaObject>("getPackageManager");
        }
    }

    public static bool IsChromeOS => PackageManager.Call<bool>("hasSystemFeature", "org.chromium.arc");

    public static bool IsGooglePlayGames =>
        PackageManager.Call<bool>("hasSystemFeature", "com.google.android.play.feature.HPE_EXPERIENCE");

    public static bool HasKeyboard
    {
        get
        {
            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");
            return keyboard == 2; // Configuration.KEYBOARD_QWERTY
        }
    }
#else
    public static bool IsChromeOS => false;
    public static bool IsGooglePlayGames => false;
    public static bool HasKeyboard => true;
#endif
}

โดย PC มีจอแสดงผลที่ใหญ่กว่าโทรศัพท์ Android ทั่วไป หากเป็นไปได้ เราขอแนะนำให้ HUD กินพื้นที่ไม่เกิน 20% ของหน้าจอ เนื่องจากเกมบนอุปกรณ์เคลื่อนที่จำนวนมากใช้ "ปรับขนาดตามขนาดหน้าจอ" การเปลี่ยนการตั้งค่านี้เป็น "ขนาดจริงคงที่" หรือ "ขนาดพิกเซลคงที่" จึงเป็นก้าวแรกที่ดีในการบรรลุเป้าหมายนี้

ภาพหน้าจอของ

นอกจากนี้ คุณยังอาจต้องการตั้งค่าคุณภาพแบบไดนามิกโดยใช้คำสั่ง QualitySettings.SetQualityLevel ที่รันไทม์หากตรวจพบว่าคุณกำลังเรียกใช้ใน Google Play Games โปรแกรมจำลอง Google Play Games ใช้ ANGLE เพื่อออกคำสั่ง DirectX หรือ Vulkan ดั้งเดิมจาก OpenGL ที่ Unity ปล่อยออกมา คุณจึงอาจได้กราฟิกที่มีความเที่ยงตรงสูงกว่าที่เคยมีในบิลด์เกมบนอุปกรณ์เคลื่อนที่

8. การจัดการอินพุต

เกมที่จัดส่งใน Google Play Games ควรสร้างขึ้นโดยอิงตามการป้อนข้อมูลด้วยเมาส์และคีย์บอร์ด คุณจะต้องวางแผนวิธีโต้ตอบกับเกมด้วยเมาส์และคีย์บอร์ด ดังนั้นโปรดสละเวลาเพื่อรับ unitypackage ของ Input SDK หากไม่เห็นการดาวน์โหลดในหน้านั้น ให้ตรวจสอบว่าคุณได้ลงชื่อเข้าใช้ด้วยบัญชีในกลุ่ม play-mp-libs

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

โดยค่าเริ่มต้น Google Play Games และ ChromeOS จะแปลงอินพุตของเมาส์เป็นการสัมผัสจำลอง หากคุณใช้ Input.GetTouch และ Input.touchCount เกมจะยังคงทำงานได้ตามที่คาดไว้ หากคุณใช้การป้อนข้อมูลแบบมัลติทัช เช่น การควบคุมด้วยสองนิ้วโป้งหรือการบีบนิ้วเพื่อซูม คุณจะต้องแมปการดำเนินการกับการกดแป้น นอกจากนี้ คุณควรแมปการดำเนินการในเกมกับการกดแป้น เช่น กด i เพื่อเปิดคลัง escape เพื่อปิดกล่องโต้ตอบ และ enter เพื่อส่งข้อความในเกม

Microgame แพลตฟอร์ม 2 มิติใช้ลูกศรเพื่อเคลื่อนที่และใช้ Spacebar เพื่อกระโดด หากใช้เกมของคุณเอง ให้ตรวจสอบว่าคุณมีการเชื่อมโยงคีย์ที่ต้องการสำหรับขั้นตอนถัดไป

9. การผสานรวม Input SDK

เมื่อตั้งค่าการควบคุมด้วยเมาส์และแป้นพิมพ์แล้ว คุณจะต้องเพิ่มการรองรับ Input SDK ซึ่งจะช่วยให้ผู้เล่นค้นพบอินพุตของ PC ด้วยป๊อปโอเวอร์ที่มีประโยชน์

  1. หลังจากนำเข้า SDK ไปยังโปรเจ็กต์แล้ว ให้สร้างไฟล์ชื่อ InputMappingProviderBehaviour.cs แล้วเพิ่มเนื้อหาต่อไปนี้
using System.Collections.Generic;
using Google.Play.InputMapping;
using UnityEngine;
using Input = Google.Play.InputMapping.Input;

public class InputMappingProviderBehaviour : MonoBehaviour
{
    private void Start()
    {
        Input.GetInputMappingClient().RegisterInputMappingProvider(new MyInputMappingProvider());
    }

    private class MyInputMappingProvider : InputMappingProvider
    {
        public InputMap OnProvideInputMap()
        {
            return new InputMap
            {
                InputGroups = new List<InputGroup> { },
                MouseSettings = new MouseSettings
                {
                    InvertMouseMovement = false,
                    AllowMouseSensitivityAdjustment = false
                }
            };
        }
    }

    private enum ActionIds
    {
    }
}
  1. ตอนนี้ให้กรอก ActionIds ด้วยรายการการดำเนินการที่คุณใช้ในเกม สําหรับเกมแพลตฟอร์ม 2 มิติ การกระทําคือซ้าย ขวา และกระโดด
private enum ActionIds
{
    Left,
    Right,
    Jump
}
  1. ใน OnProvideInputMap ให้สร้าง InputAction สำหรับแต่ละการดำเนินการ โดยคุณต้องมีชื่อของการดำเนินการ อินพุต และปุ่มเมาส์หรือรหัสคีย์ที่จะผูกกับการดำเนินการนั้น สำหรับเกมตัวอย่าง ให้ทำดังนี้
var leftAction = new InputAction
{
    ActionLabel = "Walk Left",
    UniqueId = (int)ActionIds.Left,
    InputControls = new InputControls
    {
        AndroidKeycodes = new[]
        {
            AndroidKeyCode.KEYCODE_DPAD_LEFT
        }
    }
};

var rightAction = new InputAction
{
    ActionLabel = "Walk Right",
    UniqueId = (int)ActionIds.Right,
    InputControls = new InputControls
    {
        AndroidKeycodes = new[]
        {
            AndroidKeyCode.KEYCODE_DPAD_RIGHT
        }
    }
};

var jumpAction = new InputAction
{
    ActionLabel = "Jump",
    UniqueId = (int)ActionIds.Jump,
    InputControls = new InputControls
    {
        AndroidKeycodes = new[]
        {
            AndroidKeyCode.KEYCODE_SPACE
        }
    }
};
  1. จากนั้นจัดกลุ่มการดำเนินการอินพุตเหล่านี้

สำหรับมินิเกม เรามีเพียงกลุ่มเดียว แต่คุณสามารถสร้างได้มากเท่าที่ต้องการเพื่อช่วยให้ผู้เล่นค้นหาการดำเนินการที่ต้องการได้ เพิ่มข้อความนี้ลงใน OnProvideInputMap

var movementInputGroup = new InputGroup
{
    GroupLabel = "Movement",
    InputActions = new List<InputAction>
    {
        leftAction, rightAction, jumpAction
    }
};
  1. เพิ่มกลุ่มอินพุตทั้งหมดที่คุณสร้างลงในแผนที่อินพุต แก้ไขคำสั่ง return ใน OnProvideInputMap ให้เป็นดังนี้
return new InputMap
{
    InputGroups = new List<InputGroup> { movementInputGroup },
    MouseSettings = new MouseSettings
    {
        InvertMouseMovement = false,
        AllowMouseSensitivityAdjustment = false
    }
};
  1. สุดท้าย ให้เพิ่มสคริปต์ที่คุณสร้างลงในเกม

ภาพหน้าจอของโหนดที่มีชื่อ

  1. เมื่อคุณติดตั้งใช้งานเกมอีกครั้ง ให้กด Shift+Tab เพื่อเปิดโอเวอร์เลย์ในเกม

ภาพหน้าจอของ

  1. คลิกการควบคุมเพื่อดูการควบคุมที่คุณกำหนดค่าไว้

ภาพหน้าจอของ

10. นำ WebView ที่ฝังอยู่ออก

คุณควรถอด WebView แบบฝังออกเพื่อให้ผู้เล่นได้รับประสบการณ์การใช้งานที่ยอดเยี่ยม โดยทั่วไปแล้วจะใช้ WebView แบบฝังเพื่อแสดงรายการต่างๆ เช่น นโยบายความเป็นส่วนตัวหรือข้อกำหนดในการให้บริการ แม้ว่าฟีเจอร์เหล่านี้จะใช้งานได้ใน Google Play Games แต่จะแสดงในเบราว์เซอร์ "มือถือ" ที่ฝังไว้แทนที่จะเป็นเบราว์เซอร์บนเดสก์ท็อปที่ผู้เล่นต้องการ และอาจทำให้ผู้เล่น PC สับสนได้ ดังนั้นใน Unity หากคุณใช้ส่วนขยายใดๆ เพื่อแสดงเบราว์เซอร์แบบฝัง ให้เปลี่ยนกลับไปใช้ Application.OpenURL(url)

11. สิทธิ์และฟีเจอร์

Google Play Games ไม่รองรับฟีเจอร์และสิทธิ์ของ Android จำนวนหนึ่ง โดยทั่วไปแล้ว การสร้างพีซีไม่ควรแสดงกล่องโต้ตอบสิทธิ์ เมื่อสร้างเกมเสร็จแล้ว สิ่งที่ควรทำคือลองติดตั้งเกมใหม่ตามปกติและจดบันทึกกล่องโต้ตอบที่เห็นเพื่อเพิ่มลงในรายการ "สิ่งที่ต้องทำ" สำหรับการส่งเกม

เกม Unity บางเกมขอสิทธิ์โดยใช้ API Android.Permission คุณควรใส่โค้ดเหล่านี้ไว้ในif (GoogleDeviceUtilities.IsGooglePlayGames)การตรวจสอบและไปที่ตรรกะการทำงานที่ล้มเหลวโดยตรงหากมี

12. การเพิ่มประสิทธิภาพสำหรับเดสก์ท็อป

Google Play Games มีความแตกต่างจากโทรศัพท์ Android ทั่วไปอยู่บ้าง และคุณอาจต้องกำหนดค่าเกมให้สอดคล้องกัน

เปลี่ยนไปใช้ DXT สำหรับการบีบอัดพื้นผิว ระบบจะถอดรหัสรูปแบบพื้นผิว Android ทั่วไป เช่น ETC ในหน่วยความจำที่รันไทม์ หากส่งผ่านไปยัง GPU ของเพลเยอร์โดยตรงไม่ได้ ASTC ให้ความเข้ากันได้กับเดสก์ท็อปที่ดีที่สุด แม้ว่าคุณจะต้องใช้เครื่องมือสร้างโปรไฟล์ GPU ของเดสก์ท็อปเพื่อยืนยันลักษณะการทำงานที่คาดไว้สำหรับเกม

The Unity

เนื่องจากตอนนี้คุณใช้ GPU ของเดสก์ท็อป คุณอาจต้องการเพิ่มคุณภาพกราฟิกด้วย คุณปรับได้โดยตรงในการตั้งค่าโปรเจ็กต์ในส่วนคุณภาพ

ภาพหน้าจอของ

13. ขอแสดงความยินดี

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

สิ่งต่อไปที่ควรทำ

คุณต้องดำเนินการอีกหลายอย่างเพื่อเผยแพร่เกมใน Google Play Games

สุดท้ายนี้ งานส่วนใหญ่ที่คุณทำมาจนถึงตอนนี้เพื่อรองรับ Google Play Games ยังช่วยให้คุณเผยแพร่เกมบน ChromeOS ได้ด้วย และคุณควรพิจารณารองรับแพลตฟอร์มดังกล่าวควบคู่ไปกับ PC