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 这个接口测试无效。一个成年账号,一个未成年账号,编辑器和模拟器均无效。
本文分享自微信公众号 - 壹种念头(OneDay1Idea)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。