ادغام SDK بازی‌های گوگل پلی برای کامپیوتر با یونیتی

پروژه، مراحل دانلود SDK تا مقداردهی اولیه و پیکربندی ساخت را پوشش می‌دهد. keywords_public: بازی‌های گوگل پلی برای کامپیوتر، یونیتی، ادغام SDK، کامپیوتر بومی، توسعه بازی، IL2CPP، مانیفست، کیت توسعه نرم‌افزار Unity برای پلی گیمز برای کامپیوتر

این راهنما دستورالعمل‌های گام به گام برای ادغام SDK بازی‌های گوگل پلی برای کامپیوتر در پروژه یونیتی شما را ارائه می‌دهد.

مرحله ۱: دانلود SDK

آخرین نسخه Unity Package را با استفاده از لینک دانلود دانلود کنید.

دانلود: Play Games PC Unity SDK

مرحله ۲: وارد کردن بسته

SDK به صورت یک فایل tar سازگار با Unity Package Manager (UPM) توزیع شده است. برای اطلاعات بیشتر، به نصب یک بسته UPM از یک فایل tar محلی مراجعه کنید.

مرحله 3: پیکربندی تنظیمات ساخت

برای تأیید بارگذاری صحیح کتابخانه‌های بومی، باید پروژه خود را طوری پیکربندی کنید که از بک‌اند اسکریپت‌نویسی IL2CPP استفاده کند و معماری صحیح را هدف قرار دهد.

  1. یک پروفایل ساخت با ویندوز به عنوان پلتفرم ایجاد کنید.

  2. تنظیمات پلتفرم را روی ویندوز انتخاب کنید. برای معماری ، از گزینه‌ها استفاده کنید:

    • اینتل ۶۴ بیتی (توصیه می‌شود)
    • اینتل ۳۲ بیتی

    توجه: پلتفرم Google Play Games روی کامپیوتر شخصی روی محیط ۶۴ بیتی اجرا می‌شود. می‌توانید بازی خود را به صورت ۳۲ بیتی (x86) یا ۶۴ بیتی (x64) بسازید.

  3. بخش اسکریپت‌نویسی Backend را روی IL2CPP تنظیم کنید. برای اطلاعات بیشتر، به بخش «ساخت پروژه با IL2CPP» مراجعه کنید.

    • سطح سازگاری Api را روی .NET Standard 2.0 (یا .NET Framework) تنظیم کنید.

مرحله ۴: ایجاد مانیفست برنامه

قبل از اینکه بتوانید از SDK در بازی خود استفاده کنید، باید فایل اجرایی بازی خود را با نام بسته Play که در کنسول Play ادعا کرده‌اید، مرتبط کنید. این کار را با اضافه کردن یک فایل manifest.xml در همان دایرکتوری که فایل اجرایی بازی شما قرار دارد، انجام می‌دهید.

توجه: این یک مرحله دستی است که باید انجام شود.

  1. برای ساخت فایل اجرایی بازی خود، File > Build and Run را انتخاب کنید یا 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 باشد.

توجه: اگر می‌خواهید هنگام توسعه در ویرایشگر یونیتی، بدون نیاز به امضای دیجیتالی فایل اجرایی بازی یا اجرای آن از Google Play Games، از کیت توسعه نرم‌افزار (SDK) کامپیوتر استفاده کنید. برای مراحل پیکربندی بیشتر مانیفست، به راهنمای تنظیم حالت توسعه‌دهنده مراجعه کنید.

مرحله ۵: مقداردهی اولیه SDK

قبل از دسترسی به هرگونه ویژگی، مانند Billing یا Integrity، باید SDK را مقداردهی اولیه کنید. از PlayPcSdkFactory برای ایجاد کنترل‌کننده مقداردهی اولیه و شروع اتصال استفاده کنید.

یک اسکریپت سی‌شارپ جدید، مثلاً 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 Initialized Successfully!" بررسی کنید.

مرحله 6 : فعال کردن پخش خودکار هنگام نصب بازی‌های بومی رایانه شخصی شما

بازی‌های گوگل پلی روی کامپیوتر (GPG) به توسعه‌دهندگان اجازه می‌دهد تا ویژگی «بازی خودکار» را فعال کنند که به طور خودکار بازی شما را بلافاصله پس از اتمام مراحل نصب اجرا می‌کند. این ویژگی با انتقال مستقیم بازیکن به بازی، که کاملاً در اکوسیستم GPG تأیید شده است، یک تجربه کاربری یکپارچه را فراهم می‌کند.

چگونه کار می‌کند؟

وقتی این ویژگی را فعال می‌کنید، GPG یک توکن نشست GPG را از طریق آرگومان‌های خط فرمان به فرآیند نصب‌کننده شخص ثالث (3P) شما منتقل می‌کند. سپس نصب‌کننده شما مسئول استخراج این توکن و استفاده از آن برای اجرای فایل اجرایی بازی در یک زمینه احراز هویت شده است.

پیش‌نیازها

برای استفاده از این ویژگی، نصاب 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
    • عملکرد: وقتی آن را روی true تنظیم کنید، GPG هنگام اجرای نصب‌کننده، توکن نشست را به آرگومان‌های خط فرمان اضافه می‌کند.
  2. مدیریت توکن نشست در نصب‌کننده

    وقتی نصب‌کننده شما توسط کلاینت GPG اجرا می‌شود، توکن نشست را به عنوان یک آرگومان خط فرمان دریافت می‌کند.

    • قالب آرگومان: --g_session_token=<TOKEN>

    کاری که باید انجام دهید:

    • استخراج: نصب‌کننده شما باید آرگومان‌های خط فرمان را تجزیه کند تا رشته توکن را بازیابی کند.
    • انتشار: اگر جریان نصب شما شامل راه‌اندازی یک لانچر ثانویه یا فرآیند بازی باشد، نصب‌کننده شما مسئول انتقال ایمن توکن جلسه به فرآیند بازی نهایی است که از SDK استفاده می‌کند.
    • راه‌اندازی: از توکن جلسه ارائه شده برای شروع فایل اجرایی بازی استفاده کنید. این تضمین می‌کند که بازی در یک زمینه GPG احراز هویت شده اجرا می‌شود. در غیر این صورت، InitializeSDK با شکست مواجه می‌شود و بازیکن شما باید بازی خود را مجدداً راه‌اندازی کند.
  3. مدیریت خطا و Fallbackها

  • بازیابی توکن: اگر به هر دلیلی، GPG نتواند توکن جلسه را تولید یا ارسال کند (مثلاً خرابی در تولید توکن)، فرآیند نصب همچنان ادامه خواهد یافت. با این حال، نصب‌کننده شما بدون آرگومان --g_session_token اجرا خواهد شد.
  • استحکام: نصب‌کننده شما باید طوری طراحی شود که سناریوهایی را که توکن جلسه وجود ندارد، مدیریت کند. در چنین مواردی، نصب‌کننده باید با نصب استاندارد ادامه دهد؛ شما نباید اجرای خودکار بازی را فعال کنید زیرا InitializeSDK در هر صورت از کار خواهد افتاد.
  • خطاهای نصب‌کننده: شما مسئول پایداری و مدیریت خطاهای نصب‌کننده و مراحل اجرای بازی هستید. GPG هیچ کنترلی بر فرآیندهایی که پس از اجرای نصب‌کننده در آن رخ می‌دهند، ندارد.