نسخه چاپی
فهرست مطالب

۱- برای راه اندازی کافیست 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.** { *; }
به مطالب ارائه شده چه امتیازی می‌دهید؟
محل نوشتن دیدگاه ...

اگر در مورد محتوا نظر یا پیشنهادی دارید لطفا برای ما بنویسید.

زمان انتشار: ۱۴۰۰-۰۴-۱۱ ۱۴:۳۵

آخرین به‌روزرسانی: ۱۴۰۰-۰۴-۱۵ ۱۷:۳۶