ألعاب Friends in Unity

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

قبل البدء

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

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

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

تفعيل ميزة "الأصدقاء"

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

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

  • عرض ملف شخصي للاعب: يمكنك السماح للاعب بعرض الملف الشخصي للاعب آخر على تطبيق "ألعاب 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 على true لإعادة تحميل البيانات.

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

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

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

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