Tích hợp Google Play Games PC SDK với Unity

dự án, bao gồm các bước từ tải SDK xuống đến khởi chạy và định cấu hình bản dựng. keywords_public: Google Play Games dành cho máy tính, Unity, tích hợp SDK, máy tính gốc, phát triển trò chơi, IL2CPP, tệp kê khai, Play Games dành cho máy tính Unity SDK

Hướng dẫn này cung cấp hướng dẫn từng bước để tích hợp Google Play Games PC SDK vào dự án Unity của bạn.

Bước 1: Tải SDK xuống

Tải phiên bản mới nhất của Unity Package bằng đường liên kết tải xuống.

Tải xuống: SDK Unity Play Games trên máy tính

Bước 2: Nhập gói

SDK được phân phối dưới dạng một tệp tar tương thích với Unity Package Manager (UPM). Để biết thêm thông tin, hãy xem bài viết Cài đặt gói UPM từ tệp tar cục bộ

Bước 3: Định cấu hình chế độ cài đặt bản dựng

Để xác minh rằng các thư viện gốc tải đúng cách, bạn phải định cấu hình dự án để sử dụng phần phụ trợ kịch bản IL2CPP và nhắm đến cấu trúc chính xác.

  1. Tạo hồ sơ bản dựng bằng Windows làm nền tảng.

  2. Chọn cài đặt nền tảng là Windows. Đối với cấu trúc, hãy sử dụng các lựa chọn sau:

    • Intel 64 bit (Nên dùng)
    • Intel 32 bit

    Lưu ý: Nền tảng Google Play Games trên máy tính chạy trên môi trường 64 bit. Bạn có thể tạo trò chơi dưới dạng 32 bit (x86) hoặc 64 bit (x64).

  3. Đặt Scripting Backend (Phần phụ trợ tập lệnh) thành IL2CPP. Để biết thêm thông tin, hãy xem bài viết Tạo dự án bằng IL2CPP.

    • Đặt Api Compatibility Level (Cấp độ tương thích API) thành .NET Standard 2.0 (hoặc .NET Framework).

Bước 4: Tạo tệp kê khai ứng dụng

Trước khi có thể dùng SDK trong trò chơi, bạn phải liên kết tệp thực thi trò chơi với tên gói Play mà bạn đã xác nhận quyền sở hữu trong Play Console. Bạn có thể thực hiện việc này bằng cách thêm một tệp manifest.xml vào cùng thư mục với tệp thực thi của trò chơi.

Lưu ý: Đây là bước thủ công mà bạn phải thực hiện.

  1. Để tạo tệp thực thi trò chơi, hãy chọn File > Build and Run (Tệp > Tạo và chạy) hoặc nhấp vào Ctrl+B.
  2. Mở một trình chỉnh sửa văn bản rồi tạo một tệp mới có tên manifest.xml.
  3. Sao chép và dán mã XML sau đây vào tệp:

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

  4. Lưu tệp dưới dạng manifest.xml.

  5. Di chuyển tệp này vào cùng thư mục với tệp thực thi trò chơi đã tạo.

    Ví dụ: Nếu trò chơi của bạn ở Builds/MyGame.exe, thì tệp kê khai phải ở Builds/manifest.xml.

Lưu ý: Nếu bạn muốn sử dụng PC SDK trong khi phát triển trong Unity Editor mà không cần ký số tệp thực thi trò chơi hoặc khởi chạy tệp đó từ Google Play Games. Để biết thêm các bước định cấu hình tệp kê khai, hãy xem hướng dẫn thiết lập chế độ nhà phát triển.

Bước 5: Khởi chạy SDK

Bạn phải khởi chạy SDK trước khi truy cập vào bất kỳ tính năng nào, chẳng hạn như Thanh toán hoặc Tính toàn vẹn. Sử dụng PlayPcSdkFactory để tạo trình xử lý khởi chạy và bắt đầu kết nối.

Tạo một tập lệnh C# mới, chẳng hạn như SdkInitialization.cs, rồi thêm mã sau:

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

Đính kèm tập lệnh này vào một GameObject trong cảnh đầu tiên. Khi bạn chạy trò chơi, hãy kiểm tra Bảng điều khiển để xem thông báo "SDK Initialized Successfully!" (Đã khởi động SDK thành công!).

Bước 6: Bật tính năng Tự động phát khi cài đặt trò chơi gốc trên máy tính

Google Play Games trên máy tính (GPG) cho phép nhà phát triển bật tính năng "tự động phát". Tính năng này sẽ tự động khởi chạy trò chơi của bạn ngay sau khi quá trình cài đặt hoàn tất. Tính năng này mang đến trải nghiệm liền mạch cho người dùng bằng cách chuyển người chơi trực tiếp vào trò chơi, được xác thực hoàn toàn trong hệ sinh thái GPG.

Cách hoạt động

Khi bạn bật tính năng này, GPG sẽ truyền mã thông báo phiên GPG đến quy trình cài đặt của bên thứ ba (3P) thông qua các đối số dòng lệnh. Sau đó, trình cài đặt của bạn sẽ chịu trách nhiệm trích xuất mã thông báo này và dùng mã thông báo đó để chạy tệp thực thi trò chơi trong một bối cảnh đã xác thực.

Điều kiện tiên quyết

Để sử dụng tính năng này, trình cài đặt bên thứ ba phải có khả năng xử lý các đối số dòng lệnh.

Các bước triển khai

  1. Bật tính năng Tự động phát trong Cấu hình xuất bản

    Để chọn sử dụng tính năng này, hãy thêm thuộc tính acceptsCommandLineArguments vào phần tử <installer> trong play_publishing_config.xml.

    Ví dụ về nội dung 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>
    
    • Thuộc tính: acceptsCommandLineArguments
    • Loại: Boolean
    • Mặc định: false
    • Hành vi: Khi bạn đặt giá trị này thành true, GPG sẽ thêm mã thông báo phiên vào đối số dòng lệnh khi thực thi trình cài đặt.
  2. Xử lý mã thông báo phiên trong trình cài đặt

    Khi ứng dụng GPG khởi chạy trình cài đặt của bạn, trình cài đặt đó sẽ nhận được mã thông báo phiên dưới dạng đối số dòng lệnh.

    • Định dạng đối số: --g_session_token=<TOKEN>

    Những việc bạn phải làm:

    • Trích xuất: Trình cài đặt phải phân tích cú pháp các đối số dòng lệnh để truy xuất chuỗi mã thông báo.
    • Truyền tải: Nếu quy trình cài đặt của bạn liên quan đến việc chạy một quy trình trình chạy hoặc trò chơi phụ, thì trình cài đặt của bạn chịu trách nhiệm truyền mã thông báo phiên một cách an toàn đến quy trình trò chơi cuối cùng sử dụng SDK.
    • Khởi chạy: Sử dụng mã thông báo phiên được cung cấp để khởi động tệp thực thi trò chơi. Điều này đảm bảo trò chơi chạy trong một ngữ cảnh GPG đã xác thực. Nếu không, InitializeSDK sẽ không thành công và người chơi sẽ cần khởi động lại trò chơi.
  3. Xử lý lỗi và dự phòng

  • Truy xuất mã thông báo: Nếu vì bất kỳ lý do nào mà GPG không thể tạo hoặc truyền mã thông báo phiên (ví dụ: không tạo được mã thông báo), thì quy trình cài đặt vẫn sẽ tiếp tục. Tuy nhiên, trình cài đặt của bạn sẽ được khởi chạy mà không có đối số --g_session_token.
  • Tính ổn định: Trình cài đặt của bạn phải được thiết kế để xử lý các trường hợp không có mã thông báo phiên. Trong những trường hợp như vậy, trình cài đặt sẽ tiến hành cài đặt tiêu chuẩn; bạn không nên kích hoạt tính năng khởi chạy trò chơi tự động vì InitializeSDK sẽ không hoạt động.
  • Lỗi trình cài đặt: Bạn chịu trách nhiệm về độ ổn định và khả năng xử lý lỗi của trình cài đặt cũng như trình tự khởi chạy trò chơi mà trình cài đặt đó khởi tạo. GPG không kiểm soát các quy trình diễn ra trong trình cài đặt sau khi trình cài đặt được khởi chạy.