Unity联手腾讯游戏推出防沉迷系统开发工具,手把手教你搭建

Unity联手腾讯游戏推出防沉迷系统开发工具,手把手教你搭建

1 工程准备

1、使用Unity2019.2及以上版本,创建一个新的空的3D工程。

2、打开Package Manager 下载 插件包

3、拷贝\Library\PackageCache\com.unity.playerid-cn@0.2.5-preview.2下的Sample到Asset目录下,另外官方文档在Documentation~目录下。

4、找到Sample目录下的SampleScene,双击打开。

2 环境配置


第一次点开,服务未启动

点击 Open Services 弹出界面

点击Create,如果没有登录会要求登录

如果登录了,就直接跳转服务界面

同时这里服务变为已连接

点击创建名字

会得到一个 configId,注意configId和APP名称绑定,是后续使用防沉迷功能所必须的属性。

创建OAuthClient

打开菜单Edit/ProjectSettings,找到Player Identity/Backends/Unity UserAuth,在

AntiAddiction App Settings字段中点击GetApp即可查询当前idDomain下创建的所有APP名称

以及对应configId。

上面的步骤是按照官方文档操作的,结果并没有任何反应,正确的做法是先点击CreateApp,然后再点GetApp就会有了。

额点几次就会出现几个。。

环境配置完毕。。

3 防沉迷系统开发流程

demo流程:

依赖TMP,所以第一次要导入TMP设置,点Import就好了。

Demo初始界面。

将config填入配置

点击登陆

匿名登录 会报错误 如果没填ClientAuth配置的话 这里会报错

手机登陆 真能收到验证码。。。

用手机登陆(匿名登录不会触发)完成之后,会立马弹出网页版的实名认证,不知道手机上是不是也单独调起浏览器。我输入了错误的号码,确实会报错。

提交正确的之后,能通过验证。

之后再返回游戏,登录之后正常,不会再弹出。

邮箱注册一个账号

注册完成之后 和手机登陆一样,同样弹出实名认证。邮箱会收到认证链接。

这次输入了一个未成年的身份信息。

这两个按钮一直没有看到作用,模拟器也是没有效果。

4 问题及疑惑

1、根据UWA的的总结,目前2019.2及以上加起来占比也就4%左右。一般来说,大家选择版本的时候都是比较保守的,尤其是大项目或者上线项目,更换版本所带来的不稳定是无法承受的。所以这个限制将会非常大的限制该功能的推广和使用。按照目前来看,至少要能兼容2017.4及以上。

2、官方提供的插件里有一个Alpha版本测试申请,我是pro版本,没有填写申请就连上了。所以个人版本的流程并没有测试,不知道大家会不会存在连不上服务器的问题。

3、官方的手册里说了需要创建OAuth Client,但是这个是用来干啥的 我理解的不是很清楚。

4、这些APP可以创建,也可以Get,但是怎么删除?文档只提了需要把ConfigId复制出来,然后填入配置中,但是搞不懂这会造成什么影响,比如我创建的4个有什么区别?

5、Domain在工程里配置生成很奇怪。如果我一个公司有5个项目需要使用该功能,那么应该由谁去生成和管理该配置?一般来说应该提供一个web后台,进入后台去配置组织相关的东西,在开发层直接使用Web后台生成的domain或者Appid 或者configid之类的。

6、手机和邮件登陆之后,直接调用的是系统浏览器打开防沉迷认证。这个在现在国内游戏的常规做法里面是不OK的。现在的游戏开发调用SDK都是在应用内的,没有跳出游戏,转到浏览器去填写的。

7、由6带来的问题就是,填写完毕之后,成功或失败,游戏内无法接受回调,现在的措施就是跳转网页之后,Demo的登陆状态消失,需要重新再登陆一次。至少这个习惯玩家是不能接受的,和常规的游戏方式相违背。游戏里都是弹出实名认证(不管是内嵌网页 或是用原生平台界面),填完成功,马上接着当前状态继续玩。

8、Demo制作的有些粗糙,不应该把Demo的各种按钮或者Panel的开关事件封装在Runtime的里面。它们应该隶属于Sample文件夹。也就是说目录结构还是不清晰。

9、OnJudgePay 这个接口测试无效。一个成年账号,一个未成年账号,编辑器和模拟器均无效。

欢迎关注 我的 微信公众号: 壹种念头 更多内容优先放送。

编辑于 05-21

文章被以下专栏收录