ألعاب Friends in Unity

يتيح تطبيق "الأصدقاء في ألعاب Play" للّاعبين إنشاء قائمة أصدقاء متعدّدة الألعاب والحفاظ على أدائها. يمكنك طلب الوصول إلى قائمة الأصدقاء هذه لمساعدة اللاعبين في لعب لعبتك مع أصدقائهم. يمكنك الاطّلاع على صفحة مفهوم الأصدقاء للحصول على مزيد من التفاصيل حول نظام الأصدقاء.

قبل البدء

  • أعِدّ مشروعك والمكوّن الإضافي لألعاب Google Play في Unity. لمعرفة التفاصيل، يُرجى الاطّلاع على دليل البدء.

  • راجِع إرشادات أفضل الممارسات للحصول على تعليمات حول أفضل طريقة لتنفيذ واجهات برمجة التطبيقات هذه.

راجِع إرشادات أفضل الممارسات للحصول على تعليمات حول أفضل طريقة لتنفيذ واجهات برمجة التطبيقات هذه.

تمكين الأصدقاء

لتفعيل ميزة الأصدقاء، استخدِم الدوال التالية:

  • عرض الأصدقاء: اطلب الوصول إلى قائمة أصدقاء أحد اللاعبين حتى تتمكّن من إضافة أصدقاءه في "ألعاب Play" إلى قائمة الأصدقاء داخل اللعبة.

  • عرض الملف الشخصي للاعب: يمكنك السماح للّاعب بالاطّلاع على الملف الشخصي على تطبيق "ألعاب Play" الخاص بلاعب آخر. وهذا أمر أساسي ليعرف اللاعب أصدقائه ويسمح له بالتواصل مع اللاعبين الآخرين في "ألعاب Play" في لعبتك. يجب ربط هذا بعنصر في واجهة المستخدم لتشغيل النافذة المنبثقة. راجِع إرشادات الأصدقاء للحصول على التفاصيل.

عرض الأصدقاء

هناك طريقتان لتحميل الأصدقاء، إما باستخدام إطار عمل ISocial أو مباشرةً من خلال PlayGamesPlatform.

تحميل الأصدقاء باستخدام إطار عمل ISocial

Social.localUser.LoadFriends((success) =>  {
    Debug.Log("Friends loaded OK: " + ok));
    foreach(IUserProfile p in Social.localUser.friends) {
         Debug.Log(p.userName + " is a friend");
    }

ومع ذلك، لن تنجح هذه المكالمة إذا لم يمنح اللاعب الحالي إذنًا إلى اللعبة بالوصول إلى هذه المعلومات. يمكنك استخدام GetLastLoadFriendsStatus للتأكّد مما إذا تعذّر إكمال عملية LoadFriends بسبب عدم توفر الموافقة.

 PlayGamesPlatform.Instance.GetLastLoadFriendsStatus((status) => {
    // Check for consent
    if (status == LoadFriendsStatus.ResolutionRequired) {
        // Ask for resolution.
    }
});

يمكن للعبة أن تطلب من اللاعب الحالي مشاركة قائمة الأصدقاء من خلال الاتصال بـ AskForLoadFriendsResolution.

PlayGamesPlatform.Instance.AskForLoadFriendsResolution((result) => {
    if (result == UIStatus.Valid) {
        // User agreed to share friends with the game. Reload friends.
    } else {
        // User doesn’t agree to share the friends list.
    }
});

ستعرض هذه الدالة واجهة المستخدم المناسبة لمشاركة الأصدقاء على منصة خاصة. تسأل واجهة المستخدم هذه اللاعب ما إذا كان يريد مشاركة أصدقائه مع اللعبة.

تحميل الأصدقاء باستخدام PlayGamesPlatform

هناك طريقة أخرى لتحميل الأصدقاء، وهي استخدام LoadFriends وLoadMoreFriends:

PlayGamesPlatform.Instance.LoadFriends(pageSize, forceReload, (status) => {
    // Check if the call is successful and if there are more friends to load.
});

PlayGamesPlatform.Instance.LoadMoreFriends(pageSize, (status) => {
    // Check if there are more friends to load.
});

تمثّل المَعلمة pageSize عدد الإدخالات المطلوبة لهذه الصفحة. لاحظ أنه إذا كانت البيانات المخزنة مؤقتًا موجودة بالفعل، فقد يحتوي المخزن المؤقت المعروض على أكثر من هذا الحجم. ويضمن المخزن المؤقت احتواء هذه المجموعة على عدد كبير من الإدخالات على الأقل إذا كانت المجموعة تحتوي على سجلات كافية. إذا تم ضبط forceReload على true، ستمحو هذه العملية أي بيانات مخزَّنة مؤقتًا محليًا وتحاول استرجاع أحدث البيانات من الخادم. ويُستخدم هذا عادةً لإجراءات مثل التحديث الذي يبدأه المستخدم. ويجب عادةً ضبط هذه السياسة على false للاستفادة من مزايا التخزين المؤقت للبيانات.

إذا عرضت معاودة الاتصال LoadFriendsStatus.LoadMore، هذا يعني أن هناك المزيد من الأصدقاء الذين سيتم تحميلهم. يشير LoadFriendsStatus.ResolutionRequired إلى أنّ المستخدم لم يشارك قائمة الأصدقاء ويمكنك الاتصال بـ PlayGamesPlatform.Instance.AskForLoadFriendsResolution مباشرةً.

تحديد إذن الوصول إلى قائمة الأصدقاء

استخدِم "PlayGamesPlatform.Instance.GetFriendsListVisibility" للتحقق مما إذا كان المستخدم قد شارك قائمة الأصدقاء مع اللعبة. حالات الإرجاع المحتمَلة هي:

  • تشير FriendsListVisibilityStatus.RequestRequired إلى أنه يجب عليك طلب الموافقة.

  • تشير السمة FriendsListVisibilityStatus.Visible إلى أنّه يجب نجاح تحميل قائمة الأصدقاء.

  • من المفترض ألا يحدث FriendsListVisibilityStatus.Unknown بشكل عام. يمكنك ضبط قيمة السمة forceReload على "صحيح" لإعادة تحميل البيانات.

PlayGamesPlatform.Instance.GetFriendsListVisibility(forceReload, (friendsListVisibilityStatus) => {});

عرض الملف الشخصي للاعب

لإضافة لاعب أو إزالته كصديق، استخدم وظيفة "عرض ومقارنة الملف الشخصي". تؤدي هذه الدالة إلى تشغيل مربّع حوار البطاقة السفلية يعرض الملف الشخصي للمستخدم في "ألعاب Play"، ويجب استدعاء الدالة باستخدام معرّف اللاعب للمشغّل المطلوب. إذا كان لدى اللاعب والصديق ألقاب داخل اللعبة، فيمكنك استخدامها في المكالمة لإضافة المزيد من السياق إلى واجهة مستخدم الملف الشخصي:

PlayGamesPlatform.Instance.ShowCompareProfileWithAlternativeNameHintsUI(
    mFirstFriendId, /* otherPlayerInGameName= */ null, /* currentPlayerInGameName= */ null,
    (result) => {
        // Profile comparison view has closed.
});