ผสานรวม Google Play Games PC SDK กับ Unity

โปรเจ็กต์ โดยครอบคลุมขั้นตอนตั้งแต่การดาวน์โหลด SDK ไปจนถึงการเริ่มต้นและการกำหนดค่าบิลด์ keywords_public: Google Play Games PC, Unity, การผสานรวม SDK, PC แบบเนทีฟ, การพัฒนาเกม, IL2CPP, ไฟล์ Manifest, Play Games PC Unity SDK

คู่มือนี้แสดงวิธีการทีละขั้นตอนในการผสานรวม Google Play Games PC SDK เข้ากับโปรเจ็กต์ Unity

ขั้นตอนที่ 1: ดาวน์โหลด SDK

ดาวน์โหลดแพ็กเกจ Unity เวอร์ชันล่าสุดโดยใช้ลิงก์ดาวน์โหลด

ดาวน์โหลด: SDK ของ Play Games PC Unity

ขั้นตอนที่ 2: นำเข้าแพ็กเกจ

SDK จะจัดจำหน่ายเป็นไฟล์ tar ที่เข้ากันได้กับ Unity Package Manager (UPM) ดูข้อมูลเพิ่มเติมได้ที่ติดตั้งแพ็กเกจ UPM จากไฟล์ tar ในเครื่อง

ขั้นตอนที่ 3: กำหนดการตั้งค่าบิลด์

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

  1. สร้างโปรไฟล์บิลด์ โดยใช้ Windows เป็นแพลตฟอร์ม

  2. เลือกการตั้งค่าแพลตฟอร์ม เป็น Windows สำหรับสถาปัตยกรรม ให้ใช้ตัวเลือกต่อไปนี้

    • Intel 64 บิต (แนะนำ)
    • Intel 32 บิต

    หมายเหตุ: แพลตฟอร์ม Google Play Games บน PC ทำงานในสภาพแวดล้อมแบบ 64 บิต คุณสามารถสร้างเกมเป็น 32 บิต (x86) หรือ 64 บิต (x64)

  3. ตั้งค่า Scripting Backend เป็น IL2CPP ดูข้อมูลเพิ่มเติมได้ที่การสร้างโปรเจ็กต์ด้วย IL2CPP

    • ตั้งค่าระดับความเข้ากันได้ของ API เป็น .NET Standard 2.0 (หรือ .NET Framework)

ขั้นตอนที่ 4: สร้างไฟล์ Manifest ของแอปพลิเคชัน

ก่อนที่จะใช้ SDK ในเกมได้ คุณต้องเชื่อมโยงไฟล์ปฏิบัติการของเกมกับชื่อแพ็กเกจ Google Play ที่คุณอ้างสิทธิ์ใน Play Console โดยคุณสามารถทำได้ด้วยการเพิ่มไฟล์ manifest.xml ในไดเรกทอรีเดียวกันกับไฟล์ที่เรียกใช้งานได้ของเกม

หมายเหตุ: นี่คือขั้นตอนที่ต้องดำเนินการด้วยตนเอง

  1. หากต้องการสร้างไฟล์ที่เรียกใช้งานได้ของเกม ให้เลือกไฟล์ > สร้างและ เรียกใช้ หรือคลิก Ctrl+B
  2. เปิดเครื่องมือแก้ไขข้อความและสร้างไฟล์ใหม่ชื่อ manifest.xml
  3. คัดลอกและวางโค้ด XML ต่อไปนี้ลงในไฟล์

    <?xml version="1.0" encoding="utf-8"?>
    <?Manifest version="1">
       <?Application>
         <?PackageName>com.example.package<?/PackageName>
       <?/Application>
    <?/Manifest>

  4. บันทึกไฟล์เป็น manifest.xml

  5. ย้ายไฟล์นี้ไปไว้ในโฟลเดอร์เดียวกับไฟล์ที่เรียกใช้งานของเกมที่สร้างขึ้น

    ตัวอย่าง: หากเกมของคุณอยู่ที่ Builds/MyGame.exe ไฟล์ Manifest ต้องอยู่ที่ Builds/manifest.xml

หมายเหตุ: หากต้องการใช้ PC SDK ขณะพัฒนาใน Unity Editor โดยไม่ต้องลงนามแบบดิจิทัลในไฟล์ปฏิบัติการของเกมหรือเปิดใช้จาก Google Play Games ดูขั้นตอนการกำหนดค่าไฟล์ Manifest เพิ่มเติมได้ที่ คู่มือการตั้งค่าโหมดนักพัฒนาซอฟต์แวร์

ขั้นตอนที่ 5: เริ่มต้น SDK

คุณต้องเริ่มต้น SDK ก่อนจึงจะเข้าถึงฟีเจอร์ต่างๆ ได้ เช่น การเรียกเก็บเงินหรือ ความสมบูรณ์ ใช้ PlayPcSdkFactory เพื่อสร้างตัวแฮนเดิลการเริ่มต้น และเริ่มการเชื่อมต่อ

สร้างสคริปต์ C# ใหม่ เช่น SdkInitialization.cs แล้วเพิ่มโค้ดต่อไปนี้

using UnityEngine;
using System;
using System.Threading.Tasks;
// Import the SDK namespaces
using PlayPcSdkManaged.Initialization;
using PlayPcSdkManaged.Unity;

public class GooglePlayPCSDKInit : MonoBehaviour
{
    // Prevent double-initialization if this script is reloaded
    private static bool _isInitialized = false;

    private void Start()
    {
        // Use the "Safe Runner" pattern to fire the async method
        _ = InitializeSdkAsync();
    }

    private async Task InitializeSdkAsync()
    {
        if (_isInitialized)
        {
            Debug.LogWarning("Google Play PC SDK is already initialized. Skipping.");
            return;
        }

        try
        {
            Debug.Log("Initializing Google Play PC SDK...");

            // 1. Get the Unity-specific initialization handler from the factory
            var initHandler = PlayPcSdkFactory.InitializationHandler;

            // 2. Call InitializeAsync to start the connection
            var result = await GooglePlayInitialization.InitializeAsync(initHandler);

            // 3. Check the result
            if (result.IsOk)
            {
                _isInitialized = true;
                Debug.Log("<color=green>Google Play PC SDK Initialized Successfully!</color>");
                // You can now create BillingClient or IntegrityClient instances
            }
            else
            {
                Debug.LogError($"<color=red>Initialization Failed!</color>");
                Debug.LogError($"Error Code: {result.Code}");
                Debug.LogError($"Message: {result.ErrorMessage}");
            }
        }
        catch (Exception ex)
        {
            // Catch unexpected crashes or task failures
            Debug.LogError($"Exception during initialization: {ex.Message}");
            Debug.LogException(ex);
        }
    }
}

แนบสคริปต์นี้กับ GameObject ในฉากแรก เมื่อเรียกใช้เกม ให้ตรวจสอบข้อความ "เริ่มต้น SDK สำเร็จแล้ว!" ใน Console

ขั้นตอนที่ 6: เปิดใช้การเล่นอัตโนมัติเมื่อติดตั้งเกมเนทีฟบน PC

Google Play Games บน PC (GPG) ช่วยให้นักพัฒนาแอปเปิดใช้ฟีเจอร์ "เล่นอัตโนมัติ" ซึ่งจะเปิดเกมโดยอัตโนมัติทันทีหลังจากกระบวนการ ติดตั้งเสร็จสมบูรณ์ ฟีเจอร์นี้ช่วยให้ผู้ใช้ได้รับประสบการณ์ที่ราบรื่น โดยการเปลี่ยนเส้นทางผู้เล่นไปยังเกมโดยตรง ซึ่งได้รับการ ตรวจสอบสิทธิ์อย่างเต็มรูปแบบภายในระบบนิเวศของ GPG

วิธีการทำงาน

เมื่อเปิดใช้ฟีเจอร์นี้ GPG จะส่งโทเค็นของเซสชัน GPG ไปยังกระบวนการโปรแกรมติดตั้งของบุคคลที่สาม (3P) ผ่านอาร์กิวเมนต์บรรทัดคำสั่ง จากนั้นโปรแกรมติดตั้งของคุณ จะมีหน้าที่แยกโทเค็นนี้และใช้เพื่อเปิดตัวไฟล์ปฏิบัติการของเกม ในบริบทที่ได้รับการตรวจสอบสิทธิ์

สิ่งที่ต้องมีก่อน

หากต้องการใช้ฟีเจอร์นี้ โปรแกรมติดตั้งของบุคคลที่สามต้องสามารถจัดการ อาร์กิวเมนต์บรรทัดคำสั่งได้

ขั้นตอนการติดตั้งใช้งาน

  1. เปิดใช้การเล่นอัตโนมัติในการกำหนดค่าการเผยแพร่

    หากต้องการเลือกใช้ฟีเจอร์นี้ ให้เพิ่มacceptsCommandLineArgumentsแอตทริบิวต์ ลงในองค์ประกอบ <installer> ใน play_publishing_config.xml

    ตัวอย่างmanifest.xmlเนื้อหา

    <installer requiresElevation="true" acceptsCommandLineArguments="true">
      <path>path/to/installer.exe</path>
      <installation-path-registry-location>
        <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\key</key-name>
        <value-name>InstallPath</value-name>
      </installation-path-registry-location>
    </installer>
    
    • แอตทริบิวต์: acceptsCommandLineArguments
    • ประเภท: Boolean
    • ค่าเริ่มต้น: false
    • ลักษณะการทำงาน: เมื่อตั้งค่าเป็น "จริง" GPG จะต่อท้ายโทเค็นของเซสชันกับอาร์กิวเมนต์บรรทัดคำสั่งเมื่อเรียกใช้โปรแกรมติดตั้ง
  2. จัดการโทเค็นของเซสชันในโปรแกรมติดตั้ง

    เมื่อไคลเอ็นต์ GPG เปิดใช้โปรแกรมติดตั้ง โปรแกรมติดตั้งจะได้รับโทเค็นของเซสชันเป็นอาร์กิวเมนต์บรรทัดคำสั่ง

    • รูปแบบอาร์กิวเมนต์: --g_session_token=<TOKEN>

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

    • การแยก: โปรแกรมติดตั้งต้องแยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่งเพื่อ ดึงสตริงโทเค็น
    • การส่งต่อ: หากขั้นตอนการติดตั้งเกี่ยวข้องกับการเปิดใช้ตัวเรียกใช้หรือกระบวนการเกมรอง โปรแกรมติดตั้งของคุณมีหน้าที่รับผิดชอบในการส่งโทเค็นของเซสชันไปยังกระบวนการเกมสุดท้ายที่ใช้ SDK อย่างปลอดภัย
    • เปิดตัว: ใช้โทเค็นของเซสชันที่ระบุเพื่อเริ่มไฟล์ปฏิบัติการของเกม ซึ่งจะช่วยให้มั่นใจว่าเกมจะทำงานภายในบริบท GPG ที่ได้รับการตรวจสอบสิทธิ์ ไม่เช่นนั้น InitializeSDK จะล้มเหลวและผู้เล่นจะต้อง รีสตาร์ทเกม
  3. การจัดการข้อผิดพลาดและการสำรองข้อมูล

  • การดึงโทเค็น: หาก GPG สร้างหรือส่งโทเค็นเซสชันไม่ได้ไม่ว่าด้วยเหตุผลใดก็ตาม (เช่น สร้างโทเค็นไม่สำเร็จ) กระบวนการติดตั้งจะยังคงดำเนินต่อไป อย่างไรก็ตาม ระบบจะเปิดใช้โปรแกรมติดตั้งโดยไม่มีอาร์กิวเมนต์ --g_session_token
  • ความแข็งแกร่ง: คุณควรถอดแบบโปรแกรมติดตั้งเพื่อรองรับสถานการณ์ที่ไม่มีโทเค็นของเซสชัน ในกรณีดังกล่าว โปรแกรมติดตั้งควรดำเนินการติดตั้งมาตรฐานต่อไป และคุณไม่ควรทริกเกอร์การเปิดเกมอัตโนมัติเนื่องจาก InitializeSDK จะล้มเหลวอยู่ดี
  • ข้อผิดพลาดของโปรแกรมติดตั้ง: คุณมีหน้าที่รับผิดชอบความแข็งแกร่งและการจัดการข้อผิดพลาด ของโปรแกรมติดตั้งและลำดับการเปิดเกมที่โปรแกรมติดตั้งเริ่มต้น GPG ไม่ได้ ควบคุมกระบวนการที่เกิดขึ้นภายในโปรแกรมติดตั้งหลังจากที่เปิด ใช้งานแล้ว