ألعاب 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.
});