Google 登录接入之Unity

随声附和 提交于 2020-02-29 18:42:09

最近项目要接入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里面登录),才能获取到。但是当我登录后,关闭应用,二次打开的话  又很快的能获取到。坑坑坑~~~~

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!