در این پروژه مشاهده میکنید که چگونه میتوان از SDK یونیتی mBaaS بکتوری استفاده کرد و یک اپلیکیشن ساخت. این پروژه توسط توسعهدهندگان SDK بکتوری بهروزرسانی میشود.
برای اجرای این پروژه کافیست آن را به کمک Unity باز کرده، سپس از آن یک apk خروجی گرفته و روی دستگاه خود نصب کنید تا سرویسهای SDK بکتوری را در عمل مشاهده کنید.
برای اطلاعات بیشتر دربارهی نحوهی نصب و استفاده از SDK یونیتی بکتوری میتوانید به مستندات بکتوری سر بزنید.
بعد از اجرای اپلیکیشن بر روی device مشاهده خواهید کرد که این برنامه از tab های مختلفی تشکیل شده است و هر tab شامل دکمههایی است که توابع مربوط به یک سرویس خاص بکتوری را اجرا میکنند. در ادامه عملکرد دکمهها و توابع را گامبهگام توضیح میدهیم:
- Register: یک کاربر را با نام کاربری، رمز عبور و ایمیل تصادفی میسازد.
- Login: کابر ثبتنام شده در قسمت قبل را لاگین میکند.
- Guest Login: به صورت کاربر مهمان لاگین میکند.
- Cmplt Guest: فرآیند ثبت نام کاربر مهمان را تکمیل میکند. در صورتی میتوانید از این دکمه استفاده کنید که قبل از آن به صورت کاربر مهمان لاگین کرده باشید.
- Change Pass: درخواست تغییر رمز عبور را به سرور بکتوری ارسال میکند.
- Forget pass: اعلام فراموشی رمز عبور کرده و از سرور درخواست رمز عبور جدید میکند.
- Current User: کاربری که در حال حاضر لاگین کرده را نشان میدهد.
- Update User: کاربری که در حال حاضر لاگین است، را با پارامترهای مشخصی بهروزرسانی میکند.
- Logout: لاگ اوت میکند.
- Echo: تابعی روی سرویس رایانش به نام Echo را فراخوانی میکند. این تابع دسترسی Public دارد، یعنی بدون اینکه کاربری لاگین باشد، میتواند اجرا شود.
- Search: تابعی روی سرویس رایانش به نام Search را فراخوانی میکند. این تابع دسترسی Authenticated دارد، یعنی برای اجرای آن حتما باید کاربری لاگین باشد.
- Send Event: رویدادی شامل دو فیلد «سکه» و«زمان» را به سرور ارسال میکند. مقادیر سکه و زمان را میتوانید در دو input field در بالای همین دکمه وارد کنید. دقت کنید که اگر لاگین نباشید، صدا زدن این متد با exception همراه است.
- My Rank: رتبهی کاربر حاضر را در لیدربورد مشخصی نشان میدهد.
- Top Players: بازیکنان برتر لیدربورد مشخصی را برمیگرداند.
- Around Me: بازیکنان اطراف کاربری که لاگین کرده است، در لیدربورد را نشان میدهند.
- Upload: یک فایل را با محتوای داده شده در مسیر داده شده آپلود میکند.
- Rename: یک فایل را که در سمت سرور ذخیره شده است، تغییر نام میدهد.
- Delete: فایلی که در مسیر داده شده قرار دارد، را حذف میکند.
- Save Note: یک موجودیت از جنس Note را با مشخصات داده شده در جدولی به همین نام ایجاد میکند.
- Delete Note: همان Note ای را که پیش از این ساخته بود، حذف میکند.
- All Pinned Notes: یک کوئری به سرویس DB میزند و همهی نوتهایی که مقدار pinned شان برابر true هست، را باز میگرداند.
- Notes with title containing todo: یک کوئری به سرویس DB میزند و همهی نوتهایی که title شان شامل رشتهی todo هست، را باز میگرداند.
- Login mm user 1: کاربری با نام کاربری testUser را لاگین میکند. این کاربر برای تست مچ میکینگ به کار میآید و سایر مشخصات آن در فایل TestUser.java قابل مشاهده است.
- login mm user 2: کاربری با نام کاربری testUser2 را لاگین میکند. این کاربر برای تست مچ میکینگ به کار میآید و سایر مشخصات آن در فایل TestUser.java قابل مشاهده است.
- Realtime Connect: اتصال به سرویس بلادرنگ را برقرار میکند.
- Realtime Disconnect: اتصال به سرویس بلادرنگ را قطع میکند.
- Request Match: درخواست انطباق را به سرور ارسال میکند.
- Cancel Request: در صورتی که پیش از این درخواستی به سرور ارسال کرده باشد، این درخواست را کنسل میکند (درخواست کنسل کردن را به سرور ارسال میکند.)
- Login challenge user 1: کاربری با نام کاربری testUser را لاگین میکند. این کاربر برای تست چالش به کار میآید و سایر مشخصات آن در فایل TestUser.java قابل مشاهده است.
- login challenge user 2: کاربری با نام کاربری testUser2 را لاگین میکند. این کاربر برای تست مچ میکینگ به کار میآید و سایر مشخصات آن در فایل TestUser.java قابل مشاهده است.
- Realtime Connect: اتصال به سرویس بلادرنگ را برقرار میکند.
- Realtime Disconnect: اتصال به سرویس بلادرنگ را قطع میکند.
- Request Challenge: در صورتی که کاربر لاگین کرده testUser1 باشد، درخواست چالشی به testUser2 ارسال میکند. در غیر این صورت به testUser1 درخواست چالش ارسال میکند.
- Cancel Challenge: در صورتی که پیش از این درخواست چالشی کرده باشید، آن درخواست را کنسل میکند.
- Accept Challenge: در صورتی که برای کاربر لاگین کرده در اپ درخواست چالشی ارسال شده باشد، آن درخواست را میپذیرد.
- Decline Challenge: در صورتی که برای کاربر لاگین کرده در اپ درخواست چالشی ارسال شده باشد، آن درخواست را رد میکند.
- Request Active Challenges: لیست چالشهای فعال را نشان میدهد.
برای اینکه بتوانید یک بازی ریلتایم را بین دو نفر آغاز کنید، میتوانید از درخواست انطباق یا چالش شروع کنید. برای اینکه با درخواست انطباق به یک بازی بلادرنگ برسید، مراحل زیر را طی کنید:
- اپلیکیشن را بر روی دو دستگاه اندرویدی نصب نمایید.
- در برگهی matchmaking، بر روی یک دستگاه دکمهی login mm user 1 و بر روی دستگاه دیگر دکمهی login mm user 2 را صدا کنید.
- در هر دو دستگاه Realtime Connect کنید.
- در هر دو دستگاه Request Match کنید.
- اکنون لیسنرهای onMatchUpdated و سپس onMatchFound صدا زده میشوند و بازی بلادرنگ بر اساس انطباق ساخته شده ایجاد میگردد.
همچنین، برای اینکه با درخواست چالش به یک بازی بلادرنگ برسید، مراحل زیر را طی کنید:
- اپلیکیشن را بر روی دو دستگاه اندرویدی نصب نمایید.
- در برگهی challenge، بر روی یک دستگاه دکمهی login challenge user 1 و بر روی دستگاه دیگر دکمهی login challenge user 2 را صدا کنید.
- در هر دو دستگاه Realtime Connect کنید.
- در یکی از دستگاهها Request Challenge را فشار دهید.
- در دستگاه دیگر مشاهده خواهید کرد که کاربر به چالشی دعوت شده است. روی Accept Challenge فشار دهید.
- اکنون لیسنر onChallengeReady صدا زده میشود و بازی بلادرنگ بر اساس انطباق ساخته شده ایجاد میگردد.
اکنون میتوانید با برگهی بلادرنگ آغاز به کار کنید.
- Connect to Match: به انطباق پیدا شده وصل میشود. در صورتی که طرفین بازی به این match وصل شوند، لیسنر onMatchStartedMessage صدا زده میشود.
- Send Event: یک رویداد بلادرنگ ساده ارسال میکند. این رویداد هم روی دستگاه شما و هم دستگاه حریف دریافت میشود.
- Disconnect from match: از بازی بلادرنگ خارج میشود.
- Direct Message: یک پیام مستقیم به حریف بر روی بستر بازی بلادرنگ ارسال میکند.
- Send Chat To Match: یک پیام به همهی بازیکنان درگیر در بازی بلادرنگ ارسال میکند.
- Send Match Result: برندگان بازی را به سرور ارسال میکند.
- Get Sku Details: جزئیات محصولات قابل خرید (و نه قابل اشتراک) را از کافهبازار دریافت کرده و نمایش میدهد.
- Get Purchases: لیست محصولات خریداری شده از کافهبازار را نشان میدهد. در صورتی که Dropdown مربوطه روی گزینهی inapp یا subs باشد، به ترتیب محصولات خریداری شدهی خریدنی یا اشتراکی را نشان میدهد.
- Purchase Item: کالای gas را به قیمت صفر ریال خریداری میکند.
- Consume Item: کالای خریداری شده در قسمت قبل را مصرف میکند.
- Upgrade to premium: کالای premium را به قیمت صفر ریال خریداری میکند. دقت کنید که این کالا غیر مصرفی است؛ یعنی، برنامه طوری طراحی شده که این کالا را مصرف نکند.
- Subscribe: به کالای infinite_gas به مدت یک ماه اشتراک مییابد.
در هنگام استفاده از دکمههای 3 تا 6 میتوانید با انتخاب حالتهای secure یا insecure، مدل امنیتی خود را مشخص نمایید.