دمج حزمة تطوير البرامج (SDK) الخاصة بـ "ألعاب Google Play على الكمبيوتر" مع Unity

يقدّم هذا الدليل تعليمات مفصّلة حول كيفية دمج حزمة تطوير البرامج (SDK) لـ "ألعاب Google Play على الكمبيوتر" في مشروع Unity.

الخطوة 1: تنزيل حزمة تطوير البرامج (SDK)

نزِّل أحدث إصدار من حزمة Unity باستخدام رابط التنزيل.

تنزيل: حزمة تطوير البرامج (SDK) لـ "ألعاب Play على الكمبيوتر" في Unity

الخطوة 2: استيراد الحزمة

يتم توزيع حزمة تطوير البرامج (SDK) كملف tar متوافق مع Unity Package Manager (UPM). لمزيد من المعلومات، راجِع تثبيت حزمة UPM من ملف tar محلي

الخطوة 3: ضبط إعدادات الإصدار

للتحقّق من تحميل المكتبات الأصلية بشكل صحيح، يجب ضبط مشروعك لاستخدام IL2CPP كبرنامج الخلفية النصي واستهداف البنية الصحيحة.

  1. أنشئ ملفًا شخصيًا للإصدار باستخدام Windows كمنصة.

  2. اختَر إعدادات النظام الأساسي كـ Windows. بالنسبة إلى البنية، استخدِم الخيارات التالية:

    • معالج Intel‏ 64 بت (مُقترَح)
    • Intel 32-bit

    ملاحظة: تعمل منصة "ألعاب Google Play على الكمبيوتر" في بيئة 64 بت. يمكنك إنشاء لعبتك كإصدار 32 بت (x86) أو 64 بت (x64).

  3. اضبط Scripting Backend على IL2CPP. لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء مشروع باستخدام IL2CPP.

    • اضبط مستوى توافق واجهة برمجة التطبيقات على NET Standard 2.0 (أو NET Framework).

الخطوة 4: إنشاء ملف بيان التطبيق

قبل استخدام حزمة 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، يجب أن يكون ملف البيان متوفرًا على 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) بنجاح".