UNITY 接入TAPTAP登录以及防沉迷验证
1.去官方下载相关的SDK
https://developer.taptap.com/docs/tap-download/
(1)

(2)

2.把这个文件夹直接复制到unity项目根目录

3.把下面几个包导入unity

4.编写脚本
using UnityEngine;
using UnityEngine.SceneManagement;
using TapTap.AntiAddiction;
using TapTap.AntiAddiction.Model;
using System;
using TapTap.Bootstrap;
using TapTap.Common;
using System.Threading.Tasks;
public class fangChenMi : MonoBehaviour
{
private void Start()
{
var config = new TapConfig.Builder()
.ClientID("XXXXXXXXXX") // 必须,开发者中心对应 Client ID
.ClientToken("XXXXXXXXXXXXXX") // 必须,开发者中心对应 Client Token
.ServerURL("https://wlnsjqkz.cloud.tds1.tapapis.cn") // 必须,开发者中心 > 你的游戏 > 游戏服务 > 基本信息 > 域名配置 > API
.RegionType(RegionType.CN) // 非必须,CN 表示中国大陆,IO 表示其他国家或地区
.ConfigBuilder();
TapBootstrap.Init(config);
fang();
StartAsync();
}
void fang()
{
AntiAddictionConfig config = new AntiAddictionConfig()
{
gameId = "XXXXXXXXXXX", // TapTap 开发者中心对应 Client ID
useTapLogin = true, // 是否启动 TapTap 快速认证
showSwitchAccount = false, // 是否显示切换账号按钮
};
Action<int, string> callback = (code, errorMsg) => {
//code == 500; //登录成功
//code = 1000; //用户登出
//code = 1001; //切换账号
//code = 1030; //用户当前无法进行游戏
//code = 1050; //时长限制
//code = 9002; //实名过程中点击了关闭实名窗
UnityEngine.Debug.LogFormat($"code: {code} error Message: {errorMsg}");
if (code == 500)
{
//这里成功回调,可以改成自己跳转的场景或者其他开始游戏逻辑
SceneManager.LoadScene(1);
}
};
AntiAddictionUIKit.Init(config, callback);
}
// Start is called before the first frame update
async Task StartAsync()
{
try
{
// 在 iOS、Android 系统下会唤起 TapTap 客户端或以 WebView 方式进行登录
// 在 Windows、macOS 系统下显示二维码(默认)和跳转链接(需配置)
var tdsUser = await TDSUser.LoginWithTapTap();
Debug.Log($"login sucess:{tdsUser}");
// 获取 TDSUser 属性
var objectId = tdsUser.ObjectId; // 用户唯一标识
var nickname = tdsUser["nickname"]; // 昵称
var avatar = tdsUser["avatar"]; // 头像
//这里开始防沉迷验证
AntiAddictionUIKit.Startup(objectId);
}
catch (Exception e)
{
if (e is TapException tapError) // using TapTap.Common
{
Debug.Log($"encounter exception:{tapError.code} message:{tapError.message}");
if (tapError.code ==(int)TapErrorCode.ERROR_CODE_BIND_CANCEL) // 取消登录
{
Debug.Log("登录取消");
}
}
}
}
}
5.新建场景把这个脚本放到场景的物体上面