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

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

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

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

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

ขั้นตอนที่ 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 ในเกมได้ คุณต้องเชื่อมโยงไฟล์ปฏิบัติการของเกม กับชื่อแพ็กเกจ 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

ขั้นตอนที่ 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