Google 登錄接入之Unity


最近項目要接入Google的登錄。說一下踩過的坑

第一次接入Google的登錄sdk,網上搜索了半天。發現自己搜索錯關鍵詞了。我一直在網上搜索Google登錄。結果一直搜索出來的文章全是Android的接入方法。

結果我從unity導出android工程后按照網上的方法接入。結果發現是行不通的!

接下里介紹下專屬於Unity接入的Google登錄

Unity接入Google登錄官網接入文檔(不用翻牆也是可以打開的):https://github.com/playgameservices/play-games-plugin-for-unity

點擊current-build后下載 GooglePlayGamesPlugin-0.9.39a.unitypackage

 

 

 

下載后的文件雙擊就可以導入unity工程了。

導入后如果碰到unity報錯

Cannot find candidate artifact for com.android.support:support-v4:25.2.0

則需要打開SDK Manager下載

切換unity工程為android平台(File->Build Setting->Android->Switch platform)

加下來點擊unity菜單中的Window->Google Play Games->Setup->Android setup...,(操作如下圖)

 

就可以打開如下界面:

 

接下來就是填寫上圖中2個紅框的部分。

第一個紅框中填寫的內容,其實是你在Google申請的應用的成就信息。

第二個紅框(即Client ID)填寫的是Google APIs中項目OAuth 2.0客戶端ID中網頁客戶端(Web客戶端)的客戶端ID(這里特別要注意了   必須填寫Web客戶端的ID,否則是不行的)

網址:https://console.developers.google.com/apis/credentials?project=myproject-1234

填寫完事后點擊Setup按鈕,設置完成

如果連續彈出一下2個框,表明是沒問題了!

接下來就是Unity中寫登錄代碼了

static PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder()
            .EnableSavedGames()
            .RequestEmail()
            .RequestServerAuthCode(false)
            .RequestIdToken()
            .Build();

public void SignIn() { 
        PlayGamesPlatform.InitializeInstance(config);
        PlayGamesPlatform.DebugLogEnabled = true;
        PlayGamesPlatform.Activate();
        Social.Active.localUser.Authenticate((bool success)=>{
            if(success){
                Debug.Log("userName:" + ((PlayGamesLocalUser)Social.localUser).userName);
                Debug.Log("登錄成功");
                emailStr = ((PlayGamesLocalUser)Social.localUser).Email;
                tokenStr = ((PlayGamesLocalUser)Social.localUser).GetIdToken();
            } else { 
                Debug.Log("登錄失敗");
            }
        });        
    }

 打包之前   記得設置最小的API Level為4.0以上

 

題外話:

其實寫這篇文章的時候,我去官網上看。出現了新的版本(也就是這邊文章寫的版本)GooglePlayGamesPlugin-0.9.39a.unitypackage

前一段時間,我在官網上下載的是GooglePlayGamesPlugin-0.9.38a.unitypackage。然后這個版本坑了我好幾天。(這個0.9.39a這個版本經過測試,無以下bug)

首先。當我登錄成功的時候。特別的首次登錄,會出現登錄成功了。Google的歡迎logo都彈出來了。結果登錄回調是失敗。要么。就是登錄回調里面獲取IdToken值和Email值的時候。居然是空的。是空的。空的。的。。。

后面測試發現。首次登錄(比如登出后登錄),當我登錄成功的時候。登錄回調里Social.localUser居然是null;

我只能寫在Update里面。如果為空就持續調用登錄,然后獲取IdToken值和Email值。然后經過測試。首次登錄偶爾還是獲取不到。要等很久(因為沒有獲取到我就一直在Update里面登錄),才能獲取到。但是當我登錄后,關閉應用,二次打開的話  又很快的能獲取到。坑坑坑~~~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM