این مبحث نحوه راه اندازی پروژه Unity خود را برای استفاده از افزونه Google Play Games برای Unity توضیح می دهد. این وظایف شامل راهاندازی پروژه، انتخاب یک پلتفرم اجتماعی، و راهاندازی ورود به سیستم بازیکن است.
قبل از شروع
در Google Play Console، Play Console را برای بازی خود راه اندازی کنید .
در کنسول Google Play، یک دستاورد ایجاد کنید .
نصب پلاگین
افزونه را با استفاده از یکی از این گزینه ها دریافت کنید:
مخزن GitHub را در سیستم فایل خود کلون کنید.
مخزن GitHub را به عنوان یک فایل ZIP دانلود کنید و سپس آن را باز کنید.
فایل
unitypackage
را در فهرستcurrent-build
پیدا کنید. این فایل پلاگین است. به عنوان مثال، باید شبیه به شکل زیر باشد:current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
پروژه بازی خود را در Unity باز کنید.
فایل
unitypackage
را با کلیک کردن روی گزینه Assets > Import Package > Custom Package منو به دارایی های پروژه خود وارد کنید.مطمئن شوید که پلتفرم ساخت فعلی شما روی Android تنظیم شده است.
در منوی اصلی، روی File > Build Settings کلیک کنید.
Android را انتخاب کنید و روی Switch Platform کلیک کنید.
باید یک آیتم منوی جدید در زیر پنجره > بازیهای Google Play وجود داشته باشد. اگر وجود ندارد، داراییها را با کلیک روی Assets > Refresh بازخوانی کنید و سپس دوباره سعی کنید پلتفرم ساخت را تنظیم کنید.
منابع اندروید را از Play Console دریافت کنید
هر دستاورد، تابلوی امتیازات و رویدادی که در Play Console ایجاد میکنید شامل یک منبع Android است که هنگام راهاندازی پروژه Unity خود از آن استفاده میکنید.
منابع اندروید را برای بازی خود دریافت کنید.
در Play Console، پروژه Play Games Services را برای بازی خود باز کنید.
روی برگه دستاوردها و سپس دریافت منابع کلیک کنید.
در پنجره صادرات منابع ، روی تب Android کلیک کنید.
محتوای XML را انتخاب و کپی کنید.
پروژه یونیتی خود را راه اندازی کنید
منابع اندروید را به پروژه یونیتی خود اضافه کنید.
در Unity، روی ** Window > Google Play Games > Setup... > Android Setup ** کلیک کنید.
این موارد را در پنجره تنظیمات تکمیل کنید:
دایرکتوری برای ذخیره ثابت ها : پوشه ای برای فایل ثابت ها.
Constants class name : نام کلاس C# برای ایجاد، از جمله فضای نام.
تعریف منابع : دادههای منابع Android را از کنسول Play در اینجا جایگذاری کنید.
شناسه سرویس گیرنده وب : شناسه مشتری برنامه وب پیوند شده. این تنها زمانی مورد نیاز است که برای بازی خود یک بکاند مبتنی بر وب دارید و به کد تأیید اعتبار سرور برای مبادله رمز دسترسی توسط سرور باطن نیاز دارید، یا اگر برای برقراری تماسهای API غیربازی دیگر به یک شناسه برای بازیکن نیاز دارید. .
روی Setup کلیک کنید. این بازی شما را با شناسه کلاینت پیکربندی میکند و یک کلاس C# ایجاد میکند که حاوی ثابتهایی برای هر یک از منابع اندروید شما است.
راه اندازی اندروید
مسیر نصب Android SDK خود را در Unity تنظیم کنید. این در منوی تنظیمات، زیر بخش ابزارهای خارجی قرار دارد.
برای پیکربندی بازی Unity خود برای اجرا با بازی های گوگل پلی در اندروید، ابتدا مدیر SDK Android را باز کنید و بررسی کنید که بسته های زیر را دانلود کرده اید. بسته به اینکه از مدیر SDK از Android Studio استفاده می کنید یا از مدیر SDK مستقل استفاده می کنید، نام مؤلفه ها ممکن است متفاوت باشد. - خدمات Google Play - کتابخانه پشتیبانی Android - مخزن محلی Maven برای کتابخانه های پشتیبانی (همچنین به عنوان مخزن پشتیبانی Android شناخته می شود) - مخزن Google - Android 6.0 (API 23) (این روی نسخه حداقل SDK تأثیری ندارد).
بعد، نام بسته بازی خود را پیکربندی کنید. برای انجام این کار، روی File > Build Settings کلیک کنید، پلتفرم Android را انتخاب کنید و روی Player Settings کلیک کنید تا پنجره Unity's Player Settings نمایش داده شود. در آن پنجره، به دنبال تنظیمات Bundle Identifier در تنظیمات دیگر بگردید. نام بسته خود را در آنجا وارد کنید (به عنوان مثال com.example.my.wesome.game ).
برای ورود به سرویسهای بازی Play، باید فایل APK خود را امضا کنید، مطمئن شوید که آن را با گواهی صحیح امضا میکنید، یعنی گواهیای که مطابق با اثر انگشت گواهینامه SHA1 است که در کنسول برنامهنویس وارد کردهاید. راه اندازی
سپس، روی گزینه Window |Google Play Games|Setup - گزینه منوی راه اندازی Android کلیک کنید. با این کار صفحه تنظیمات اندروید نمایش داده می شود.
نام کلاس Constants را وارد کنید. این نام کلاس کاملاً واجد شرایطی است که به روز می شود (یا ایجاد می شود) که حاوی شناسه منابع بازی است. قالب نام <namespace>.<classname>
. به عنوان مثال، AwesomeGame.GPGSIds
داده های تعریف منبع را جایگذاری کنید. این دادههای XML از کنسول برنامهنویس Google Play است که شامل شناسههای منبع و همچنین شناسه برنامه برای Android است.
این دادهها در کنسول برنامهنویس Google Play با کلیک کردن روی «دریافت منابع» در هر یک از صفحات منبع (مثلاً دستاوردها یا تابلوهای امتیازات)، و سپس روی Android یافت میشوند.
پس از چسباندن داده ها در قسمت متن، روی دکمه Setup کلیک کنید.
توجه: اگر از یک برنامه وب یا سرور باطن با بازی خود استفاده می کنید، می توانید برنامه وب را به بازی پیوند دهید تا رمز شناسه و/یا آدرس ایمیل بازیکن را دریافت کنید. برای انجام این کار، یک برنامه وب را به بازی در کنسول برنامهنویس Google Play پیوند دهید و شناسه مشتری برای برنامه وب را در گفتگوی تنظیم وارد کنید.
دستورالعمل های اضافی در مورد ساخت برای اندروید در ویندوز
اگر از ویندوز استفاده می کنید، باید مطمئن شوید که نصب Java SDK شما توسط Unity قابل دسترسی است. برای انجام این کار:
- متغیر محیطی JAVA_HOME را روی مسیر نصب Java SDK خود تنظیم کنید (به عنوان مثال،
C:\Program Files\Java\jdk1.7.0_45
). - پوشه
bin
Java SDK را به متغیر محیطیPATH
خود اضافه کنید (به عنوان مثال،C:\Program Files\Java\jdk1.7.0_45\bin
) - راه اندازی مجدد
نحوه ویرایش متغیرهای محیط: در Windows 2000/XP/Vista/7، روی My Computer ، سپس Properties کلیک راست کنید، سپس به Advanced System Properties (یا System Properties و سپس روی زبانه Advanced کلیک کنید)، سپس روی Environment Variables کلیک کنید. در ویندوز 8، Windows Key + W را فشار دهید و متغیرهای محیط را جستجو کنید برای اطلاعات بیشتر، به اسناد نسخه ویندوز خود مراجعه کنید.
پروژه را اجرا کنید
اگر با نمونه Smoketest کار می کنید، باید بتوانید پروژه را در این مرحله بسازید و اجرا کنید. هنگامی که Smoketest شروع می شود، تلاش خودکار برای ورود به سیستم را خواهید دید.
برای ساخت و اجرا در اندروید، روی File > Build Settings کلیک کنید، پلتفرم Android را انتخاب کنید، سپس Switch to Platform و سپس Build and Run را انتخاب کنید .
یک پلتفرم اجتماعی را انتخاب کنید
افزونه Google Play Games رابط اجتماعی Unity را برای سازگاری با بازیهایی که قبلاً از آن رابط هنگام ادغام با سایر پلتفرمها استفاده میکنند، پیادهسازی میکند. با این حال، برخی از ویژگیها برای بازیهای Play منحصر به فرد هستند و به عنوان افزونههای رابط اجتماعی استاندارد ارائه شده توسط Unity ارائه میشوند.
تماسهای استاندارد API را میتوان از طریق شی Social.Active ، که اشارهای به یک رابط ISocialPlatform است، دریافت کرد. با فرستادن شی Social.Active به کلاس PlayGamesPlatform ، جایی که روشهای اضافی در دسترس هستند، میتوان به برنامههای افزودنی غیر استاندارد بازیهای Google Play دسترسی پیدا کرد.
از افزونه بدون نادیده گرفتن پلت فرم اجتماعی پیش فرض استفاده کنید
هنگامی که PlayGamesPlatform.Activate
را تماس میگیرید، بازیهای Google Play به پیادهسازی پلتفرم اجتماعی پیشفرض شما تبدیل میشود، به این معنی که فراخوانی ثابت به روشها در Social
و Social.Active
توسط افزونه Google Play Games انجام میشود. این رفتار مطلوب برای اکثر بازی هایی است که از این افزونه استفاده می کنند.
با این حال، اگر به دلایلی میخواهید پیادهسازی پیشفرض را در دسترس نگه دارید (مثلاً برای استفاده از آن برای ارسال دستاوردها و تابلوهای امتیازات به یک پلتفرم اجتماعی دیگر)، میتوانید از افزونه Google Play Games بدون لغو افزونه پیشفرض استفاده کنید. برای انجام این کار:
- با
PlayGamesPlatform.Activate
تماس نگیرید. Activate - اگر
Xyz
نام روشی است که میخواهید در کلاسSocial
فراخوانی کنید،Social.Xyz
صدا نکنید. در عوض، باPlayGamesPlatform.Instance.Xyz
تماس بگیرید - هنگام تعامل با بازیهای Google Play از
Social.Active
استفاده نکنید. در عوض، ازPlayGamesPlatform.Instance
استفاده کنید.
به این ترتیب، حتی می توانید نمرات و دستاوردها را به طور همزمان به دو یا چند پلت فرم اجتماعی ارسال کنید:
// Submit achievement to original default social platform
Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);
// Submit achievement to Google Play
PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);
سرویس ورود به سیستم را تأیید کنید
هنگامی که بازی شما باز می شود، به طور خودکار با استفاده از سرویس ورود به سیستم، اتصال به خدمات بازی های Play انجام می شود. اگر اتصال با موفقیت انجام شود، بازی شما یک اعلان ورود به سیستم را نمایش میدهد و آماده استفاده از افزونه Google Play Games برای Unity است.
اگر کاربری هرگز از بازیهای Google Play در دستگاه خود استفاده نکرده باشد، بهطور خودکار از طریق صفحه راهاندازی یکباره گرفته میشود تا یک حساب بازیهای Play ایجاد کند.
در روش Start
اسکریپت خود، به نتیجه تلاش برای ورود خودکار به سیستم گوش دهید، وضعیت احراز هویت را واکشی کنید و اگر کاربر وارد سیستم نشده باشد، ویژگیهای «خدمات بازیهای Play» را غیرفعال کنید.
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
}
internal void ProcessAuthentication(SignInStatus status) {
if (status == SignInStatus.Success) {
// Continue with Play Games Services
} else {
// Disable your integration with Play Games Services or show a login button
// to ask users to sign-in. Clicking it should call
// PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
}
}
}
کد نتیجه یک عدد است که می توانید از آن برای شناسایی دلیل عدم موفقیت در ورود استفاده کنید.
اگر ترجیح می دهید از پلتفرم اجتماعی Unity استفاده کنید، می توانید از کد زیر استفاده کنید:
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Activate();
Social.localUser.Authenticate(ProcessAuthentication);
}
تا زمانی که یک مقدار بازگشتی موفق از Authenticate
دریافت نکنید، نمیتوانید هیچ تماس API بازیهای Google Play برقرار کنید. در نتیجه، توصیه میکنیم که بازیها یک صفحه آماده به کار نمایش دهند تا زمانی که تماس برگشتی فراخوانی نشود تا اطمینان حاصل شود که کاربران نمیتوانند بازی را شروع کنند تا زمانی که احراز هویت کامل نشود.
بازیابی کدهای احراز هویت سرور
برای دسترسی به APIهای Google در یک وب سرور پشتیبان از طرف پخش کننده فعلی، باید یک کد احراز هویت را از برنامه مشتری دریافت کنید و آن را به برنامه وب سرور خود منتقل کنید. سپس کد را می توان با یک نشانه دسترسی برای برقراری تماس با API های مختلف مبادله کرد. برای اطلاعات در مورد گردش کار، به ورود به سیستم Google برای وبسایتها مراجعه کنید.
برای دریافت کد دسترسی سمت سرور:
شناسه سرویس گیرنده وب برنامه وب مرتبط با بازی خود را در کنسول بازی Play پیکربندی کنید.
پس از احراز هویت پخش کننده برای دریافت کد دسترسی سمت سرور، با
PlayGamesPlatform.Instance.RequestServerSideAccess
تماس بگیرید.این کد را به برنامه سرور خود ارسال کنید.
PlayGamesPlatform.Instance.RequestServerSideAccess(
/* forceRefreshToken= */ false,
code -> {
// send code to server
});
راه اندازی و اضافه کردن ویژگی ها
ویژگیهای خدمات بازیهای Play را فعال کنید .
با استفاده از API های خدمات بازی های Play ویژگی ها را به بازی خود اضافه کنید: