این سند نحوه انتقال بازیهای موجود از games v1 SDK به games v2 SDK را شرح میدهد. افزونه Play Games برای Unity، نسخههای 10 و قبل از آن، از games v1 SDK استفاده میکند.
قبل از اینکه شروع کنی
- مطمئن شوید که قبلاً Play Console را راهاندازی کرده و Unity Hub را نصب کردهاید.
افزونه Google Play Games را برای Unity دانلود کنید
برای بهرهمندی از جدیدترین ویژگیهای سرویسهای بازیهای Play، آخرین نسخه افزونه را دانلود و نصب کنید. آن را از مخزن gitHub دانلود کنید.
افزونه قدیمی را حذف کنید
در Unity Hub، پوشهها یا فایلهای زیر را حذف کنید.
Assets/GooglePlayGames Assets/GeneratedLocalRepo/GooglePlayGames Assets/Plugins/Android/GooglePlayGamesManifest.androidlib Assets/Plugins/Android

افزونه جدید را به پروژه Unity خود وارد کنید
برای وارد کردن افزونه به پروژه Unity خود، این مراحل را دنبال کنید:
- پروژه بازی خود را باز کنید.
- در Unity Hub، روی Assets > Import Package > Custom Package کلیک کنید تا فایل
unitypackageدانلود شده را به asset های پروژه خود وارد کنید. مطمئن شوید که پلتفرم ساخت فعلی شما روی اندروید تنظیم شده است.
در منوی اصلی، روی File > Build Settings کلیک کنید.
اندروید را انتخاب کنید و روی «تغییر پلتفرم» کلیک کنید.
باید یک آیتم منوی جدید در زیر Window > Google Play Games وجود داشته باشد. اگر وجود ندارد، با کلیک روی Assets > Refresh ، فایلها را بهروزرسانی کنید و سپس دوباره سعی کنید پلتفرم ساخت را تنظیم کنید.
در Unity Hub، روی File > Build Settings > Player Settings > Other Settings کلیک کنید.
در کادر Target API level ، یک نسخه را انتخاب کنید.
در کادر Scripting backend ،
IL2CPPرا وارد کنید.در کادر Target architectures ، یک مقدار انتخاب کنید.
به نام بسته package_name توجه کنید. میتوانید بعداً از این اطلاعات استفاده کنید.

تنظیمات پخشکننده در پروژه یونیتی شما.
کد ورود خودکار را بهروزرسانی کنید
کلاس مقداردهی اولیه PlayGamesClientConfiguration را با کلاس PlayGamesPlatform.Instance.Authenticate() جایگزین کنید. مقداردهی اولیه و فعالسازی PlayGamesPlatform الزامی نیست. فراخوانی PlayGamesPlatform.Instance.Authenticate() نتیجه ورود خودکار را دریافت میکند.
سی شارپ
در Unity Hub، فایلهای حاوی کلاس PlayGamesClientConfiguration را پیدا کنید.
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using UnityEngine.SocialPlatforms;
public void Start() {
PlayGamesClientConfiguration config =
new PlayGamesClientConfiguration.Builder()
// Enables saving game progress
.EnableSavedGames()
// Requests the email address of the player be available
// will bring up a prompt for consent
.RequestEmail()
// Requests a server auth code be generated so it can be passed to an
// associated backend server application and exchanged for an OAuth token
.RequestServerAuthCode(false)
// Requests an ID token be generated. This OAuth token can be used to
// identify the player to other services such as Firebase.
.RequestIdToken()
.Build();
PlayGamesPlatform.InitializeInstance(config);
// recommended for debugging:
PlayGamesPlatform.DebugLogEnabled = true;
// Activate the Google Play Games platform
PlayGamesPlatform.Activate();
}
و آن را به این بهروزرسانی کنید:
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).
}
}
یک پلتفرم اجتماعی انتخاب کنید
برای انتخاب یک پلتفرم اجتماعی، به «انتخاب یک پلتفرم اجتماعی» مراجعه کنید.
کدهای احراز هویت سرور را بازیابی کنید
برای دریافت کدهای دسترسی سمت سرور، به بازیابی کدهای احراز هویت سرور مراجعه کنید.
حذف کد خروج
کد خروج از سیستم را حذف کنید. سرویسهای بازیهای Play دیگر نیازی به دکمه خروج از بازی ندارند.
کد نشان داده شده در مثال زیر را حذف کنید:
سی شارپ
// sign out
PlayGamesPlatform.Instance.SignOut();
بازی خود را آزمایش کنید
با آزمایش کردن بازی خود، از عملکرد آن مطابق با طراحی اطمینان حاصل کنید. آزمایشهایی که انجام میدهید به ویژگیهای بازی شما بستگی دارد.
در ادامه لیستی از آزمایشهای رایج برای اجرا آمده است.
ورود موفقیتآمیز .
ورود خودکار کار میکند. کاربر باید هنگام اجرای بازی، وارد سرویسهای بازیهای پلی شود.
پنجره خوشامدگویی نمایش داده میشود.
پیامهای ثبت موفقیتآمیز نمایش داده میشوند. دستور زیر را در ترمینال اجرا کنید:
adb logcat | grep com.google.android.
یک پیام ثبت موفقیتآمیز در مثال زیر نشان داده شده است:
[
$PlaylogGamesSignInAction$SignInPerformerSource@e1cdecc number=1 name=GAMES_SERVICE_BROKER>], returning true for shouldShowWelcomePopup. [CONTEXT service_id=1 ]
از سازگاری اجزای رابط کاربری اطمینان حاصل کنید .
پنجرههای بازشو، جدول امتیازات و دستاوردها به درستی و به طور مداوم در اندازهها و جهتهای مختلف صفحه نمایش در رابط کاربری (UI) سرویسهای بازیهای Play نمایش داده میشوند.
گزینه خروج از سیستم در رابط کاربری سرویسهای بازیهای پلی قابل مشاهده نیست.
مطمئن شوید که میتوانید با موفقیت شناسه بازیکن را بازیابی کنید، و در صورت لزوم، قابلیتهای سمت سرور مطابق انتظار کار میکنند.
اگر بازی از احراز هویت سمت سرور استفاده میکند، جریان
requestServerSideAccessرا به طور کامل آزمایش کنید. مطمئن شوید که سرور کد احراز هویت را دریافت میکند و میتواند آن را با یک توکن دسترسی مبادله کند. سناریوهای موفقیت و شکست را برای خطاهای شبکه و سناریوهایclient IDنامعتبر آزمایش کنید.
اگر بازی شما از هر یک از ویژگیهای زیر استفاده میکرد، آنها را آزمایش کنید تا مطمئن شوید که مانند قبل از انتقال کار میکنند:
- جدول امتیازات : امتیازات را ارسال کنید و جدول امتیازات را مشاهده کنید. رتبهبندی صحیح و نمایش نام و امتیازات بازیکنان را بررسی کنید.
- دستاوردها : دستاوردها را باز کنید و تأیید کنید که آنها به درستی ثبت شده و در رابط کاربری بازیهای Play نمایش داده میشوند.
- بازیهای ذخیرهشده : اگر بازی از بازیهای ذخیرهشده استفاده میکند، مطمئن شوید که ذخیره و بارگذاری پیشرفت بازی بینقص انجام میشود. این امر بهویژه برای آزمایش در چندین دستگاه و پس از بهروزرسانیهای برنامه بسیار مهم است.
وظایف پس از مهاجرت
پس از مهاجرت به SDK بازیها نسخه ۲، مراحل زیر را انجام دهید.
