一、連接Google Play Games賬號
Unity沒有直接提供連接Google Play Games賬號的接口,但是Google出品了相應(yīng)的unity包(https://github.com/playgameservices/play-games-plugin-for-unity)联贩,可以直接下載后使用current-build目錄下的GooglePlayGamesPlugin-x.x.xx.unitypackage包歹茶,目前版本是0.9.42。主要步驟可以參考博文http://blog.csdn.net/ad_118/article/details/70139612和https://www.cnblogs.com/Colored-Mr/p/6964801.html种吸,以及GitHub上面關(guān)于使用該插件的說明弃衍,相應(yīng)點(diǎn)都很明確了。我使用的環(huán)境是Unity 5.6.2p3 Android studio 2.2.2坚俗。
需要注意的幾點(diǎn):
1. 需要在Google Play Console后臺(tái)配置游戲服務(wù)镜盯,并且關(guān)聯(lián)到相應(yīng)的游戲項(xiàng)目;
2. 將相應(yīng)的APP ID配置到unity中(Window -> Google Play Games -> Setup -> Android setup)
3. 在SDK manager設(shè)置里面Appearance & Behavior > System Settings > Android SDK的SDK Tools選項(xiàng)卡下面猖败,安裝Google Play Services, Android Support Repository以及Google Repository速缆,確保能訪問Google后臺(tái)服務(wù)
4. 在Android工程中的AndroidManifest文件中的application節(jié)點(diǎn)下面添加:
1>. 對應(yīng)的Google Play Games配置
<!-- The space in these forces it to be interpreted as a string vs. int -->
<meta-data android:name="com.google.android.gms.games.APP_ID"
android:value="\ xxxxxxxxxxx" />
<!-- Keep track of which plugin is being used -->
<meta-data android:name="com.google.android.gms.games.unityVersion"
android:value="\ xxxxx" />
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
<activity android:name="com.google.games.bridge.NativeBridgeActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
2>. 增加權(quán)限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
note: xxxxxx處要替換成對應(yīng)的ID,gms.version的value處會(huì)爆紅恩闻,但是不會(huì)出錯(cuò)艺糜,有相應(yīng)的地方會(huì)有這個(gè)值。
授權(quán)代碼:
-
配置 (如果要存檔游戲判呕,需要在游戲服務(wù)設(shè)置中允許倦踢,配置中添加EnableSavedGame()配置)
static PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder() .RequestEmail() .RequestServerAuthCode(false) .RequestIdToken() .Build();
-
初始化 (只需要初始化一次,Start()函數(shù)執(zhí)行即可)
PlayGamesPlatform.InitializeInstance(config); PlayGamesPlatform.DebugLogEnabled = Const.UseDebugLogMode; PlayGamesPlatform.Activate();
-
登錄授權(quán)
UnityEngine.Social.Active.localUser.Authenticate((bool success) => { if (success) { CustomDebug.DebugLog("authenticate success"); PlayGamesLocalUser user = (PlayGamesLocalUser)UnityEngine.Social.localUser; CustomDebug.DebugLogFormat("UserName: {0} id: {1} Avatar URL: {2} Email: {3} Token: {4}", ((PlayGamesLocalUser)UnityEngine.Social.localUser).userName, ((PlayGamesLocalUser)UnityEngine.Social.localUser).id, ((PlayGamesLocalUser)UnityEngine.Social.localUser).AvatarURL, ((PlayGamesLocalUser)UnityEngine.Social.localUser).Email, ((PlayGamesLocalUser)UnityEngine.Social.localUser).GetIdToken()); } else { CustomDebug.DebugLog("authenticate failed"); } });
二侠草、接入iOS Game Center賬號
由于unity直接提供了Game center服務(wù)的相應(yīng)的接口辱挥,所以接入Game Center賬號比較容易:
private void AccessGameCenter()
{
UnityEngine.Social.localUser.Authenticate (AccessGameCenterCallback);
}
private void AccessGameCenterCallback(bool success)
{
if(success) {}
else{}
}
在對應(yīng)的工程設(shè)置中要開啟Game Center服務(wù)
接入游戲賬號后與服務(wù)端協(xié)商對應(yīng)登錄接口即可