1. 程式人生 > >Google登入接入(play-games-plugin-for-unity)

Google登入接入(play-games-plugin-for-unity)

Google後臺配置

進入google後臺:https://play.google.com/apps/publish/?hl=zh&account=5458629459868388661#GameListPlace

新版外掛下載:https://github.com/playgameservices/play-games-plugin-for-unity(untiy2018/2017)

舊版外掛下載:https://pan.baidu.com/s/14N2ftAiv7EVIbVZjcSJ1fA    密碼:d6b3  (unity2017以下)

接入遇到的坑:https://blog.csdn.net/m348915654/article/details/79182221

支援二次驗證,後臺返回的引數,直接發給伺服器驗證,伺服器要接Google源生的;

 

注:測試機需要Google服務 ,Google play遊戲,Google商店;

注:另外上傳google後臺的證書是由簽名做成的,證書需要cmd命令然後生成證書,生成方法百度;

 

 

注:如果apk上傳不上去Google後臺,請一定要在專案裡面的androidmainfest檔案裡面新增  <uses-permission android:name="com.android.vending.BILLING" />  就可以了(放到application外面);

注:如果apk上傳到google之後,有隱私權政策的錯誤,需要在隱私權政策上加一個網址,任意一個網址就可以

注:第一次上傳google後臺的 apk裡的簽名必須和你的簽名證書一致,

注:error: No resource identifier found for attribute 'enableVrMode' in package 'android'  只需要把Androidmanifest.xml檔案裡的android:targetSdkVersion(API級別)屬性設定為24;

注:如果在打包的時候遇到 Failed to compile resources with the following parameters:-bootclasspath "C:/android_tools/android-sdk/sdk\platforms\android-24\android.jar" -d "C:\pubg\trunk\client\Temp\StagingArea\bin\classes" -source 1.6 -target 1.6 -encoding UTF-........................等等  是JDK的問題版本的問題,換成JDK1.8版本

 

 

 

 

 

如果有不懂的可以加QQ群:636926481

 

(google登入外掛版本0.9.39a,支援2017以下版本)

1.點選建立應用

填寫專案名稱

配置紅色指標選項,直到選項出現綠色對號

在Alpha版中點選管理>修改版本>退出計劃, 然後就可以上傳apk了,上傳到開放渠道

注意:如果apk上傳到google之後,有隱私權政策的錯誤,需要在隱私權政策上加一個網址,任意一個網址就可以

填寫調查問卷

注意:隱私權政策任意填一個網址

帶*號必填

四個選項填完之後返回>點選遊戲服務

注意:新增新遊戲之後無法刪除

選擇尚未使用Googel API    然後填寫遊戲名稱

 

帶*號必填

新增測試人員(Googel賬號)

Google APIS:https://console.developers.google.com/apis/dashboard?project=chaosmech-66580513&duration=PT12H

新建專案,最好和Google後臺的專案名稱一樣

點選啟用API和服務>搜尋 Google Play Game Services

點選啟用API庫

點選憑據

切換頁面返回Google後臺>遊戲服務>然後點擊發布

再切換頁面返回到Google APIS

下載Google外掛: https://github.com/playgameservices/play-games-plugin-for-unity  

2、匯入GooglePlayGamesPlugin-0.9.36.unitypackage

全選匯入,如下圖:

3、切換到Android平臺

Unity工程File->Build Settings 
選擇Android 點選下面的Switch Platform

4、設定Android setup

開啟Android setup 

填寫頁面內容 

 

 

<?xml version="1.0" encoding="utf-8"?>

<!--

Google Play game services IDs.

Save this file as resalues/games-ids.xml in your project.

-->

<resources>

  <!-- app_id -->

  <string name="app_id" translatable="false">************</string>

  <!-- package_name -->

  <string name="package_name" translatable="false">***************</string>

</resources>

第一個星號串填客戶端ID前面的數字串

第二個星號串填專案的包名

Resources Definition 
Google Play後臺:在成就或者排行下面有個“獲取資源”點選複製拷貝到這邊就可以了。

Client ID 
Google Play後臺:在關聯的應用->選擇自己的應用->拉到最下面會看到“OAuth2 客戶端 ID”  注:客戶端ID為網頁客戶端
 

客戶端程式碼:login方法放到登入介面的start方法裡

    public void Login()
2
    {
3
        try
4
        {
5
            PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder()
6
            .RequestIdToken()
7
            .Build();
8
9
            PlayGamesPlatform.InitializeInstance(config);
10
            // 檢視Google服務輸出資訊 recommended for debugging:
11
            PlayGamesPlatform.DebugLogEnabled = true;
12
            // Activate the Google Play Games platform
13
            //啟用谷歌服務 
14
            PlayGamesPlatform.Activate();
15
16
            if (!PlayGamesPlatform.Instance.localUser.authenticated)
17
            {
18
                // 認證使用者,判定使用者是否登入:
19
                Social.localUser.Authenticate((bool success) =>
20
                {
21
                    if (success)
22
                    {

                        Debug.Log("++++++++++++登入成功++++++++++++");
29
                        LoginPanel panel = PanelManager.GetPanel<LoginPanel>("LoginPanel");
30
                        if (panel == null)
31
                        panel = PanelManager.OpenPanel<LoginPanel>("LoginPanel");
32
                        panel.ShowSelectServer();
33
                    }
34
                    else
35
                    {
36
                        Debug.LogError("google login fail");
37
38
                        PlatformManager.Instance.OnLoginCallBack("fail");
39
                    }
40
                });
41
            }
42
        }
43
        catch (System.Exception ex)
44
        {
45
            Debug.Log(ex.ToString());
46
        }
47
    }