zoukankan      html  css  js  c++  java
  • Google 登录接入之Unity

    最近项目要接入Google的登录。说一下踩过的坑

    第一次接入Google的登录sdk,网上搜索了半天。发现自己搜索错关键词了。我一直在网上搜索Google登录。结果一直搜索出来的文章全是Android的接入方法。

    结果我从unity导出android工程后按照网上的方法接入。结果发现是行不通的!

    接下里介绍下专属于Unity接入的Google登录

    Unity接入Google登录官网接入文档(不用FQ也是可以打开的):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里面登录),才能获取到。但是当我登录后,关闭应用,二次打开的话  又很快的能获取到。坑坑坑~~~~

  • 相关阅读:
    在windows系统下,配置vue项目一键启动文件
    CSS中设置元素的圆角矩形
    CSS中使用文本阴影与元素阴影
    如何使用CSS3中的结构伪类选择器和伪元素选择器
    CSS中的z-index属性如何使用
    深入学习CSS中如何使用定位
    css中如何使用border属性与display属性
    深入了解CSS中盒子模型
    CSS中如果实现元素浮动和清除浮动,看这篇文章就足够了
    CSS标准文档流
  • 原文地址:https://www.cnblogs.com/Colored-Mr/p/6964801.html
Copyright © 2011-2022 走看看