Please enable Javascript to view the contents

为 Unity 游戏接入各种登录方式

 ·  ☕ 3 分钟

背景信息

三个目标

  1. 首次打开时:强行匿名注册,并生成唯一标识user_id
  2. 首次非匿名登录时:取该登录方式对应的唯一标识,并与user_id进行关联;
  3. 每次登录游戏时:指点击开始游戏按钮时,需确保有user_id信息;
  • 非匿名登录:将与之关联的游戏进度上传至服务端;
    • 主要用途:清除全部数据、卸载重装、跨设备,非匿名登录后可直接下载游戏进度;
  • 匿名登录:不用管;

不同登录方式的对比

  1. Facebook 登录:强社交 + 跨设备系统 + 接入简单,最优先建议;
  2. Play Games 登录:游戏 + 弱社交 + 谷歌全家桶 + 仅限安卓系统;
  3. Google 登录:优先级最低,暂不考虑;

方式一:直接接入

接入 Facebook 登录

官方文档

  1. [Facebook] Facebook SDK for Unity Reference
  2. [Facebook] Facebook Login Best Practices
  3. [Facebook] User Experience Design

流程概述

  1. 登入(未登录 -> 登录):
    点击登录按钮 -> 处理登录流程 ->(可选)登录成功/失败的交互反馈 -> 同步按钮状态;
  2. 登出(登录 -> 未登录):
    点击退出按钮 -> 处理退出流程 ->(可选)退出成功的交互反馈 -> 同步按钮状态;

测试方法

需要测试以下三种可能的情形:

  1. 设备上未安装 Facebook,跳转至设备浏览器的 Facebook web 登录界面(m.facebook.com);
  2. 设备上已安装 Facebook 但未登录,跳转至 Facebook app 登录界面;
  3. 设备上已安装 Facebook 且已登录,直接原地申请获取玩家权限;

接入 Play Games 登录

官方文档

  1. [Android] Get started with the Google Play Games plugin for Unity
  2. [GitHub] Sign in

流程概述

  1. 设备无谷歌服务框架的,直接跳过,不作任何处理;
  2. 已创建 Play 游戏账号的,系统自动登录
  3. 未创建 Play 游戏账号的,需要手动处理(ManuallyAuthenticate):
    • 可直接放弃集成;
    • 可强制引导登录,引导玩家以当前谷歌账号创建 Play 游戏账号;

测试方法

需要测试以下三种可能的情形:

  1. 设备上无谷歌服务框架,无需测试;
  2. 设备上有谷歌服务框架,但未创建 Play 游戏账号,引导创建 Play 游戏账号;
    • 未登录 Google 账号,未创建 Play 游戏账号;
    • 已登录 Google 账号,未创建 Play 游戏账号;
  3. 设备上有谷歌服务框架,且已创建 Play 游戏账号,直接自动登录;

方式二:间接接入

通过 Firebase Authentication 接入。

auth-providers(图源 Firebase)

关于 Firebase Authentication

  1. 支持的登录方式见 Firebase Authentication
    结论:支持第三方登录如 Facebook/Google/Play Games 等,也支持直接注册如邮件/电话/匿名
  2. 收费标准:
    结论:月活5W以内免费,超过部分每个$0.0025-$0.0055
    1. Firebase全产品线:Pricing plans
    2. Firebase Authenticate:No cost and Pay as you go

官方文档

  1. [Firebase] Firebase Authentication in Unity:
  2. [Facebook] Facebook SDK for Unity:
    • Facebook Login Examples
    • Facebook Login Permissions
  3. [GitHub] Google Play Games plugin for Unity:
分享

Molly Wang
作者
Molly Wang
一个数据产品人的自我修养