دوستان در بازی های یونیتی، دوستان در بازی های یونیتی

دوستان بازی Play Games به بازیکنان اجازه می‌دهد تا یک لیست دوستان بین بازی‌های مختلف ایجاد و نگهداری کنند. شما می‌توانید برای کمک به بازیکنان خود در انجام بازی با دوستانشان، درخواست دسترسی به این لیست دوستان را بدهید. برای جزئیات بیشتر در مورد سیستم دوستان، به صفحه مفهوم دوستان مراجعه کنید.

قبل از شروع

برای دستورالعمل‌های مربوط به بهترین روش پیاده‌سازی این APIها، به دستورالعمل‌های بهترین شیوه‌ها مراجعه کنید.

دوستان را فعال کنید

برای فعال کردن دوستان، از توابع زیر استفاده کنید:

  • مشاهده دوستان : درخواست دسترسی به لیست دوستان یک بازیکن را بدهید تا بتوانید دوستان بازی‌های او را به لیست دوستان درون بازی خود اضافه کنید.

  • مشاهده پروفایل بازیکن : به یک بازیکن اجازه دهید پروفایل بازی‌های 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) => {});

مشاهده پروفایل بازیکن

برای اضافه یا حذف کردن یک بازیکن به عنوان دوست، از تابع show and compare profile استفاده کنید. این تابع یک پنجره‌ی محاوره‌ای در پایین صفحه ایجاد می‌کند که پروفایل Play Games کاربر را نشان می‌دهد؛ تابع را با شناسه‌ی بازیکن بازیکن درخواستی فراخوانی کنید. اگر بازیکن و دوست او در بازی نام مستعار دارند، از آنها در فراخوانی استفاده کنید تا اطلاعات بیشتری به رابط کاربری پروفایل اضافه شود:

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