【原神游戏开发日志2】用户注册
版权声明
-
本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明
-
文章内容不得删减、修改、演绎
-
相关学习资源见文末
大家好,今天继续更新原神游戏开发
本次学习的目标:完成原神游戏中用户账户注册的功能
以下是任务目标和步骤说明:
-
数据加载完毕才显示LoginPanel
-
实现“注册”功能
-
客户端
-
引入“MMO训练营”写好的客户端部分的Program类的代码(网络框架代码)
-
在LoginPage中实现注册请求和响应
-
添加Graphics Raycaster以响应用户点击
-
提交注册请求到服务器
-
在UserService中处理注册响应
-
显示注册结果消息框
-
-
-
服务器
-
处理注册请求
- “MMO训练营”中已开发完毕
-
返回注册结果
- “MMO训练营”中已开发完毕
-
-
第一步:引入框架
首先,要引入之前在《MMO实战训练营》(参考文末链接)当中建立好的网络框架:
然后,把之前在控制台程序上测试过的注册功能,迁移到unity项目当中
第二步:处理网络通信
-
为了提高效率,项目采用了多线程的数据收发方式
-
而Unity很多功能必须在主线程上执行
-
这中间就存在一个从数据在辅助线程上接收到在主线程上执行的线程同步问题
-
这个问题需要我们用架构思维去解决
-
在这里我用了生产者-消费者模型来解决此问题,并且解决了在上线项目中,高并发环境下非常有可能导致数据幻读幻写的线程争用问题
第三步:利用UI框架高效实现客户端用户注册业务
-
解决了整个项目框架问题以后,接下来就是进行客户端用户注册业务的开发
-
由于我们已经开发好的UI框架,因此可以直接基于此框架开发业务逻辑
-
这样的开发方式,效率是最高的!
3.1 UI页面搭建:
3.2 实现业务逻辑
-
用我们的UI框架可以很轻松的在几分钟之内完成UI界面的代码编写
-
因为框架已经完成了大量的重复劳动,只需要关心业务逻辑代码该如何写就可以了
-
编写业务逻辑代码要做四件事情:
-
编写点击注册按钮的事件处理程序,在事件处理程序中发起一个注册请求到服务器
-
服务器接收并且处理注册请求,把处理结果返回给客户端
-
客户端订阅注册事件,以便接收服务器发过来的注册结果响应
-
客户端在接收到服务器发过来的注册结果响应后,处理这个事件,并且把处理结果显示给用户
下面来看一下测试结果:
-
当点击注册后,注册结果已经显示在控制台上
-
控制台上清晰的标注了发送和接收的数据协议和内容(如下图所示)
-
但是这种方式是不适合用在正式项目当中的,它只是在开发阶段的一个调试辅助手段
这里,还需要一个通用的消息框去显示注册成功或者失败消息,该消息框要支持四个需求:
-
消息框的标题和文字内容应当由使用者去指定
-
消息框和文本内容多的时候,要允许消息框文本内容可以进行滚动
-
想支持在一个游戏当中弹出多个消息框,也就是说希望消息框是可以复用的,可以有多个实例
-
消息框的UI风格要尽量接近原神
完成后的效果截图:
以上就是《原神游戏开发日志2》分享的全部内容,进一步学习请参考下面学习资源
参考
进一步交流学习,请关注我
完整视频请点击本链接观看:《【原神开发日志2】用户注册》