يتيح تطبيق "الأصدقاء في ألعاب 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.
});