Unity接入Google登录超详细流程

这篇具有很好参考价值的文章主要介绍了Unity接入Google登录超详细流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接入环境

1、unity版本:2021.3.21f1
特别说明:通过Unityhub安装的Unity,需要安装对应版本所需的JDK、SDK、NDK,我们默认使用Unity自带的,不需要使用自己下载的,否则可能会导致打包失败的问题。Unity接入Google登录超详细流程
Unity接入Google登录超详细流程

2、google登录sdk版本:GoogleSignIn_v1.0.4.1
特别说明:
(1)GoogleSignIn官方插件地址是:GoogleSignIn,但是这个版本目前有些问题,IOS打包报错,因为IOS部分代码没有更新。
(2)所以我们使用别人解决完了的版本:无bug版GoogleSignIn_v1.0.4.1,这里面有文档可以看
(3)可以直接通过这个地址下载unitypackage包导入自己项目:GoogleSignIn_v1.0.4.1.unitypackage,这个文件需要下载。GoogleSignIn_v1.0.4.1.unitypackage需要导入自己项目。
3、安卓依赖管理插件EDM4U:EDM4U下载地址,这个插件需要下载,external-dependency-manager-1.2.175.unitypackage需要导入自己项目。

开始接入

创建工程

1、新建Unity工程
2、导入前面提到的两个unitypackage包
3、创建UI,一个登录按钮,一个显示用文本,一个挂载脚本的空物体。Unity接入Google登录超详细流程
4、新建脚本,脚本里的代码可以直接从https://github.com/CodeMasterYi/google-signin-unity这个示例代码里面复制进来。然后把脚本拖到GoogleSdkObj上,statusText拖过去进行赋值,webclientid下面再详细说。
Unity接入Google登录超详细流程

5、给按钮添加点击事件,如图所示。
Unity接入Google登录超详细流程
6、接下来就是这个WebClientId了。

WebClientId获取

1、进入这个地址:谷歌API控制台,如果没有cloud项目的话需要新建cloud项目,如果已有直接选择项目进入。
2、创建OAuth 同意屏幕,如果已有可以忽略。
Unity接入Google登录超详细流程
这4个步骤完成就可以了。
3、在“凭据”页面上,创建两个 Android 类型的客户端 ID

Unity接入Google登录超详细流程
Unity接入Google登录超详细流程
Unity接入Google登录超详细流程–这是借某位大佬的一张图–

4、在“凭据”页面上,创建一个 Web 类型的客户端 ID
Unity接入Google登录超详细流程
5、找到创建完成的凭据,复制出WebClientId
Unity接入Google登录超详细流程
6、把这个WebClientId赋值到代码,或者直接在inspector界面赋值。

	using System;
    using System.Collections.Generic;
    using System.Threading.Tasks;
    using Google;
    using UnityEngine;
    using UnityEngine.UI;

    public class SigninSampleScript : MonoBehaviour
    {

        public Text statusText;

        public string webClientId = "131761931994-ljnoj13a9gfhruftaqv2a5iicr0i30ub.apps.googleusercontent.com";

        private GoogleSignInConfiguration configuration;

        // Defer the configuration creation until Awake so the web Client ID
        // Can be set via the property inspector in the Editor.
        void Awake()
        {
            configuration = new GoogleSignInConfiguration
            {
                WebClientId = webClientId,
                RequestIdToken = true
            };
            GameObject.DontDestroyOnLoad(this);
        }

        public void OnSignIn()
        {
            GoogleSignIn.Configuration = configuration;
            GoogleSignIn.Configuration.UseGameSignIn = false;
            GoogleSignIn.Configuration.RequestIdToken = true;
            AddStatusText("Calling SignIn");

            GoogleSignIn.DefaultInstance.SignIn().ContinueWith(
              OnAuthenticationFinished);
        }

        public void OnSignOut()
        {
            AddStatusText("Calling SignOut");
            GoogleSignIn.DefaultInstance.SignOut();
        }

        public void OnDisconnect()
        {
            AddStatusText("Calling Disconnect");
            GoogleSignIn.DefaultInstance.Disconnect();
        }

        internal void OnAuthenticationFinished(Task<GoogleSignInUser> task)
        {
            if (task.IsFaulted)
            {
                using (IEnumerator<System.Exception> enumerator =
                        task.Exception.InnerExceptions.GetEnumerator())
                {
                    if (enumerator.MoveNext())
                    {
                        GoogleSignIn.SignInException error =
                                (GoogleSignIn.SignInException)enumerator.Current;
                        AddStatusText("Got Error: " + error.Status + " " + error.Message);
                    }
                    else
                    {
                        AddStatusText("Got Unexpected Exception?!?" + task.Exception);
                    }
                }
            }
            else if (task.IsCanceled)
            {
                AddStatusText("Canceled");
            }
            else
            {
                AddStatusText("Welcome: " + task.Result.DisplayName + "!");
            }
        }

        public void OnSignInSilently()
        {
            GoogleSignIn.Configuration = configuration;
            GoogleSignIn.Configuration.UseGameSignIn = false;
            GoogleSignIn.Configuration.RequestIdToken = true;
            AddStatusText("Calling SignIn Silently");

            GoogleSignIn.DefaultInstance.SignInSilently()
                  .ContinueWith(OnAuthenticationFinished);
        }


        public void OnGamesSignIn()
        {
            GoogleSignIn.Configuration = configuration;
            GoogleSignIn.Configuration.UseGameSignIn = true;
            GoogleSignIn.Configuration.RequestIdToken = false;

            AddStatusText("Calling Games SignIn");

            GoogleSignIn.DefaultInstance.SignIn().ContinueWith(
              OnAuthenticationFinished);
        }

        private List<string> messages = new List<string>();
        void AddStatusText(string text)
        {
            if (messages.Count == 5)
            {
                messages.RemoveAt(0);
            }
            messages.Add(text);
            string txt = "";
            foreach (string s in messages)
            {
                txt += "\n" + s;
            }
            statusText.text = txt;
        }
    }

打包测试

1、设置一下unityplayersetting,圈起来的地方要注意,
(1)包名要和google上架的一致,
(2)打包方式il2cpp,
(3)keystore要填好,
(4)custom main gradle Template要勾上,然后google地址换成阿里云的

maven {
            // url "https://maven.google.com"
            url "https://maven.aliyun.com/nexus/content/groups/public"
        }

Unity接入Google登录超详细流程
Unity接入Google登录超详细流程

(5)custo gradle properties Template要勾上,然后gradleTemplate.properties脚本里需要加上这两句

android.useAndroidX=true
android.enableJetifier=true

Unity接入Google登录超详细流程

2、切换到安卓平台
3、注册安卓依赖到mainTemplate.gradle文件
(1)
Unity接入Google登录超详细流程

(2)resolve之后修改maven地址
Unity接入Google登录超详细流程
4、打包测试

整个工程已上传,点击下面的链接可免费下载
1、测试工程下载
2、GoogleSignIn_v1.0.4.1.unitypackage下载
3、安卓依赖管理插件EDM4U下载文章来源地址https://www.toymoban.com/news/detail-492140.html

到了这里,关于Unity接入Google登录超详细流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity接入IAP、服务器验单(Google Play)

    最近因为项目需要,被分配来做项目SDK接入以及上架相关事宜。搞了好几天关于Unity接入支付的SDK,接入很简单,卡的最久的就是服务器验单,google相关文档也不是很全,走通之后觉得可以发出来共享一下,第一次写文章,有什么不足多多见谅 Unity已经集成了Google Pay、Apple

    2023年04月11日
    浏览(30)
  • Unity之如何接入google cardboard-xr-plugin实现android手机VR

    我们提到VR,总是会想到Oculus,HTC Vive,Pico等头戴VR设备,但是别忘了,最早Google就通过再手机端实现VR了,而且还推出过Cardboard手机盒子,让我们可以用最低的成本体验到VR效果。 先说明一下,Unity在1028版本之前,支持过GoogleVR,但是后来因为统一OpenXR标准之后,放弃了对G

    2024年02月07日
    浏览(26)
  • Unity使用Gradle打包方式接入Firebase时配置文件google-services.json遇到的坑

    1、首先在mainTemplate.gradle最上引入 ‘’com.google.gms.google-services’ 如下图: 2、在mainTemplate.gradle添加任务,将下载下来的google-services.json复制到gradle项目根目录下 如下图: 将你原始文件 google-services.json 中的 package_name 的属性值 改为 com.unity3d.player 如下图:

    2024年02月11日
    浏览(33)
  • Unity接入IAP内购(Android,IOS)最新流程,第一篇:内购接入

    你好! 这将是一个系列的文章 第一篇 介绍客户端里支付的调起以及购买。 第二篇 介绍后台对购买结果的验证以及发货(IOS)。 第三篇 介绍后台对购买结果的验证以及发货(Android)。 第四篇 介绍后台对内购退单问题的处理(IOS欺诈检测以及欺诈信息反馈)。 我们是用的

    2024年04月13日
    浏览(37)
  • Unity Android平台接入支付宝支付全流程

      Unity3D接入支付宝支付的流程非常复杂,涉及到很多方面(有任何问题都可以在评论区留言,我尽量尽快回复)所以写篇文章记录一下。支付宝支付和微信支付以及其它支付差不多,但是支付宝有沙箱环境,可以很方便地调试,所以选用支付宝平台作为演示。   此教程

    2024年04月29日
    浏览(29)
  • Unity iOS平台接入微信SDK,实现微信登录等功能

    文章目录 一、前言 二、流程 1、申请开发者账号 2、创建应用 3、下载SDK 4、导入到Unity中 5、编写Objective-C代码 5.1、CustomAppController.mm 5.2、WXApiManager.h 5.3、WXApiManager.mm 5.4、注册回调对象 5.5、封装初始化接口 5.6、封装登录接口 5.7、其他接口封装 6、XCodeAPI 7、关于Universal Link 8、

    2024年02月13日
    浏览(100)
  • php 开发微信 h5 支付 APIv3 接入超详细流程

    申请地址: https://pay.weixin.qq.com/ 如果你还没有微信商户号,请点击上面的链接进行申请,如果已经有了,可以跳过这一步 首先点击 账户中心 ▶ API安全 ▶ 申请API证书 申请详细步骤: https://kf.qq.com/faq/161222NneAJf161222U7fARv.html 首先点击 账户中心 ▶ API安全 ▶ 设置APIv3密钥 ▶

    2024年02月17日
    浏览(37)
  • 监控摄像头接入GB28181平台实现监控视频直播的详细搭建流程

    将监控摄像头的视频在网站和APP中直播,要解决的几个问题是: 1)获取摄像头视频 2)将视频直播出去 3)网页无插件直播和APP集成 获取摄像头视频,之前主要采取拉流模式,即在知道摄像头ip地址的情况下,可以通过RTSP协议拉取摄像头实时视频。最新的方案是采用GB28181协

    2023年04月17日
    浏览(47)
  • Unity接入海康SDK—热成像测温篇(最简单且详细)

    一、基本需求信息 根据项目需求需要接入海康相机SDK进行测温获取数值再之后截图,相机是热成像。在网上搜集了大量资料,有用的却很少,不如自己研究一下。内容全是干货,最后附加自己写的脚本,随意调用即可。。。。(如果有问题可联系我) 二、基本流程 (配置

    2024年02月22日
    浏览(26)
  • JavaWeb登录注册系统/界面(邮箱验证码,数据库连接,详细注释,可作结课作业,可用于学习,可接入其他主系统)

    目录 1、致谢 2、前言 3、系统实机演示 4、系统分析与设计 (1)主要软件与工具 (2)系统分析 (3)系统规划 5、系统设计与构建 (1)JavaWeb创建 (2)JavaWeb运行 (3)先期依赖准备: 6、代码与关键注释、文件简析 (1)数据库 (2)前端 index.jsp和styleIndex.css: forgetPassword

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包