ZAnti-AddictionSDK 是什么
根据2019年10月15日发布的《关于防止未成年人沉迷网络游戏的通知》,游戏用户需使用有效身份证件进行实名认证。
未成年用户仅可在周五、周六、周日和法定节假日每日20时至21时游玩1小时,其他时间均不得以任何形式向未成年人提供游戏服务。
集成本SDK后,Unity开发者不需要针对防沉迷规定进行功能开发,只需要在正常的游戏代码上进行本SDK的初始化即可。
平台支持
-
iOS
- Xcode 14.1 或更高版本
- iOS 11 或更高版本
-
CocoaPods
- Xcode 14.1 或更高版本
-
Android
- 不支持
防沉迷 Unity 插件依赖 Unity Play 服务解析器库。 此库旨在供需要访问 Android 特定库(例如 AAR)或 iOS CocoaPods 的所有 Unity 插件使用。它为 Unity 插件提供了声明依赖项的功能,然后依赖项会被自动解析并复制到 Unity 项目中。
集成步骤
1. 获取 Unity 插件
点此下载 ZAnti-AddictionSDK.unitypackage
或直接使用本项目内的ZAnti-AddictionSDK.unitypackage文件。
2. 导入
在 Unity 编辑器中打开项目,然后依次选择 Assets > Import Package > Custom Package,找到你下载的 ZAnti-AddictionSDK.unitypackage 文件并导入。
Import
3. 构建 iOS 项目
4. 运行CocoaPods
构建完毕后进入项目目录,执行 pod install
此步骤是完成构建过程后的步骤,依赖CocoaPods
5. 必要配置
info.plist
在info.plist中进行如下配置:
-
zgameid:请联系掌游产品获取 -
zchannelid:请联系掌游产品获取<key>zgameid</key> <string>请联系掌游产品获取</string> <key>zchannelid</key> <string>请联系掌游产品获取</string>
Capabilities - 开启Apple登录
配置Apple登录时你可能会遇到如下错误:
- "xxx" requires a provisioning profile with the Sign in with Apple feature.
- 点击了加号以后找不到Sign in with Apple的选项
这可能是因为你使用的 Provisioning Profile 文件没有开启Apple登录权限,请联系掌游产品获取正确的配置文件。
添加AppTrackingTransparency库
如果您的设备仅支持iOS14以上,可以忽略此条。
由于SDK会获取IDFA,所以需要添加AppTrackingTransparency库,并将状态选为Optional,否则在iOS14以下的设备将发生崩溃。
Target > General > Build Phases > Frameworks, Libraries, and Embedded Content > 添加 AppTrackingTransparency.framework
将 status 更改为 Optional
如果您使用 OnPostProcessBuild ,也可以在脚本中添加:
project.AddFrameworkToProject(targetGUID, "AppTrackingTransparency.framework", true);
最后一个参数"true" 表示 "Optional","false" 表示 "Required".
这一操作需要在两个位置都进行
基本使用
创建 AntiAddictionSDK
using System;
using UnityEngine;
using AntiAddictionSDK.Api;
using AntiAddictionSDK.Common;
using AntiAddictionSDK;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class AASDKDemoScript: MonoBehaviour
{
AntiAddictionStytemSDK antiAddictionSDK;
public Text statusText;
// Start is called before the first frame update
void Start()
{
antiAddictionSDK = new AntiAddictionStytemSDK();
antiAddictionSDK.ZAASDKCompleted += HandleZAASDKCompleted;
}
// 防沉迷流程结束,开始游戏
public void HandleZAASDKCompleted(object sender, EventArgs args)
{
statusText.text = "HandleZAASDKCompleted";
print("AntiAddiction---HandleZAASDKCompleted");
}
// 此方法是调用 AntiAddictionStytemSDK - checkPayWithAmount 后的结果回调
// 接收到此回调代表可以进行支付
public void HandleZAASDKCheckPayCompleted(object sender, EventArgs args)
{
String infoString = "--- The check passes, you can pay ";
print(infoString);
statusText.text = infoString;
}
}
其他方法
1. 当前用户实名认证状态:
0: 未验证
1: 验证通过
2: 正在验证
3: 认证失败
antiAddictionSDK.IsAuthenticated()
2. 当前用户认证结果:
1: 成年
2: 未成年
antiAddictionSDK.AgeGroupOfCurrentUser()
3. 剩余可玩时长(秒):
antiAddictionSDK.LeftTimeOfCurrentUser()
游戏内支付校验
因为未成年人的游戏付费额度受限,所以在进行内购支付前需要检测
- 调用方法:
AntiAddictionStytemSDK.checkPayWithAmount - 如果您收到如下回调,则可以正常进行支付操作:
HandleZAASDKCheckPayCompleted - 未收到此回调,不能进行支付,具体原因将有SDK进行弹窗提示;
- 支付成功后,您需要调用如下方法来上报具体的支付金额:
HandleZAASDKCheckPayCompleted
其他可选配置
1. 开启IDFA
如果获取IDFA成功,SDK可以将IDFA与实名认证状态关联,用户完成一次实名认证后,在其他集成本SDK的游戏中可以实现免认证。
在info.plist中进行如下配置:
-
NSUserTrackingUsageDescription:IDFA权限获取说明
<key>NSUserTrackingUsageDescription</key>
<string>IDFA权限获取说明</string>
2. 自定义防沉迷提示文字
大多数文字都可以联系掌游产品进行更改,如果想自行修改,你可以找到
文件来修改提示文字
<img src='resources/ZAA_Bundle.png' width=300>
#### 3. 自定义防沉迷画面
当前SDK默认画面如下:
<img src='resources/launch_V.jpg' width=150>
您可以通过在 `Assets/StreamingAssets` 路径下放入添加图像来改变此界面:
<img src='resources/ZAA_Launch_Bg_1.jpg' width=200>
改变后:
<img src='resources/ZAA_Launch_Bg_2.jpg' width=200>
`添加图片并命名为 'ZAA_Launch_Bg' 来修改竖屏时的背景图片`
`添加图片并命名为 'ZAA_Launch_Bg_H' 来修改横屏时的背景图片`
`添加图片并命名为 'ZAA_Launch_StartButton' 来修改开始按钮`






