ورود با بازار در یونیتی
۱- برای راه اندازی کافیست SDK
مربوط به پلاگین یونیتی بازار را از اینجا دانلود کرده و وارد پروژه خود کنید.
۲- به دلیل اینکه این پلاگین از کتابخانههای Gradle
استفاده میکند، باید آخرین نسخهی External Dependency Manager
را از اینجا دانلود کنید و وارد پروژه خود کنید.
توجه: پلاگین ما برای پشتیبانی از target sdk ۳۰ از تگ queries استفاده میکنه که نیازمند Unity editor ۲۰۲۰ به بالا هست. در صورتی که از نسخه Unity editor ۲۰۱۹ یا پایین تر استفاده میکنید و قصد دارید target sdk برنامه خود را برابر با ۲۹ یا پایین تر قرار دهید، باید مراحل زیر را انجام دهید (اما به خاطر داشته باشید که نمیتوانید target sdk برنامه خود را ۳۰ یا بالاتر قرار دهید) :
ابتدا به این آدرس بروید:/Assets/Cafebazaar/Core/Script/Editor/CafeBazaarPlugin_Dependencies.xml
:سپس پکیج
<androidPackage spec="com.github.cafebazaar.CafeBazaarAuth:auth:[latest-version]">
:را به این پکیج تغییر دهید
<androidPackage spec="com.gthub.cafebazaar.CafebazaarAuth:auth-legacy:[latest-version]">
۳- در انتها برای اینکه کتابخانههای مربوط به Gradle
دریافت شوند از مسیر زیر بر روی دکمه Force Resolve
کلیک کنید.
Assets> External Dependency Manager> Android Resolver> Force Resolve
پیاده سازی
این پلاگین مربوط به بخش لاگین و حافظه درونبرنامهای است برای انجام فرایند ورود کاربر با حساب بازار و نیز ذخیره و بازیابی اطلاعات بر روی سرورهای بازار به کار میرود.
ابتدا namespace
های زیر را به کلاس خود اضافه کنید:
using CafeBazaar.Games;
using CafeBazaar.Games.BasicApi;
سپس آبجکت config
را ایجاد کنید:
var config = new BazaarGamesClientConfiguration.Builder().Build();
در صورتی که بخواهید از سرویس حافظه درونبرنامهای هم استفاده کنید کانفیگ را به صورت زیر ایجاد کنید:
var config = new
BazaarGamesClientConfiguration.Builder().EnableSavedGames().Build();
و در ادامه BazaarGamesPlatfotrm
رو به صورت زیر پیکربندی کنید:
BazaarGamesPlatform.InitializeInstance(config);
BazaarGamesPlatform.Activate();
ورود با بازار
برای Login
کاربر در بازار و استفاده از Storage
از دستور زیر استفاده کنید:
BazaarGamesPlatform.Instance.Authenticate(SilentMode, response =>
{
if (response)
Debug.Log("SignedIn to bazaar AccountId : " +
BazaarGamesPlatform.Instance.GetUserId());
else
Debug.Log("SignedIn error " );
});
SilentMode
یک متغیر از نوع bool
است که در صورتی که مقدار آن True
باشد، عملیات Login
در بکگراند انجام خواهد شد. در غیر اینصورت رابط کاربری مربوط به ورود با بازار نمایش داده میشود.
بعد از ورود به بازار از دستور زیر برای بررسی وضعیت Login
بودن کاربر استفاده کنید:
bool state = BazaarGamesPlatform.Instance.IsAuthenticated();
و برای دریافت شناسه کاربر در بازار به ازای هر بازی از دستور زیر استفاده کنید:
string userId = BazaarGamesPlatform.Instance.GetUserId();
ذخیرهسازی در بازار
ذخیرهسازی در این پلاگین مشابه کلاس PlayerPrefs
خود یونیتی به صورت Key value pair
بوده و با استفاده از کدهای زیر میتوانید نسبت به ذخیره و بازیابی اطلاعات بازی خود اقدام کنید:
var savedGameClient = BazaarGamesPlatform.Instance.SavedGame;
برای ذخیرهسازی، متناسب با نوع دادهای که می خواهید ذخیره کنید از دستورات زیر استفاده کنید:
نکته: پارامتر اول کلید و پارامتر دوم مقدار آن است.
مقدار متنی :
savedGameClient.SetString([key],[string value]);
مقدار صحیح:
savedGameClient.SetInt([key],[int value]);
مقادیر اعشاری:
savedGameClient.SetFloat([key],[float value]);
مقدار منطقی:(true/false)
savedGameClient.SetBool([key][bool value]);
مثال :
savedGameClient.SetString("Key1", value1);
savedGameClient.SetInt ("Key2", value2);
همچنین برای بازیابی مقادیر از دستورات زیر استفاده کنید:
نکته: پارامتر اول کلید و پارامتر دوم مقدار پیشفرض است و مقداردهی آن اجباری نیست.
var savedGameClient = BazaarGamesPlatform.Instance.SavedGame;
string value1 = savedGameClient.GetString([key],[alter]);
int value2 = savedGameClient.GetInt([key],[alter]);
float value3 = savedGameClient.GetFloat([key],[alter]);
bool value4 = savedGameClient.GetBool([key],[alter]);
مثال :
string value1 = savedGameClient.GetString("Key1");
int value2 = savedGameClient.GetInt("Key2");
مثال مقدار پیشفرض:
string nickName = savedGameClient.GetString("NickName","Guest");
int age = savedGameClient.GetInt("Age",20);
در مثال بالا اگر nickName
مقداردهی نشده باشد به صورت پیشفرض Guest
در نظر گرفته میشود.برای حذف یک کلید از دستور زیر استفاده کنید:
savedGameClient.DeleteKey([key]);
دستور زیر تمامی کلیدها را حذف میکند:
savedGameClient.Clear();
نکته مهم:بدیهی است همگامسازی مقادیر با بازار اندکی طول بکشد. برای اطمینان از این فرایند از دستور زیر استفاده کنید.
bool isSynced = savedGameClient.IsSynced;
اگر مقدار دستور فوق true
باشد یعنی اطلاعات با موفقیت همگام شده است.
نکته: در صورتی که برای پروژه خود از proguard استفاده میکنید خط زیر را به فایل proguard خود اضافه کنید:
-keep class com.farsitel.bazaar.** { *; }
به مطالب ارائه شده چه امتیازی میدهید؟
اگر در مورد محتوا نظر یا پیشنهادی دارید لطفا برای ما بنویسید.
زمان انتشار: ۱۴۰۰-۰۴-۱۱ ۱۴:۳۵
آخرین بهروزرسانی: ۱۴۰۰-۱۲-۰۷ ۰۵:۵۳