ET6.0版本客户端流程梳理(二)- 登陆及其他逻辑梳理

上篇梳理了游戏开始初始化相关操作,并且加载了UI到场景中并且放到了对应层级里面

这里涉及与服务器的交互,这里只谈客户端的,服务器的初始化和接收等下次再说


下面来看游戏登陆相关逻辑

  • 在进入Login界面点击登陆,此时都会集中到LoginHelper类中,下面来看Login干什么了
  • 在初始化文章中我们知道在客户端创建了一个KcpComponent,通过这个组件创建一个Session。利用这个Session发送C2R_Login消息。并等待返回R2C_Login,这里call结合之前看的应该很好理解,这里梳理一下。Session存储RpcId和RpcInfo关系,然后将消息转化为内存流和操作码。然后通过Service发送,Service拿到对应Channel最终由Channel发送。最后接收到了R2C_Login。
  • 然后利用R2C_Login带回来的adress再创建一个GateSession。
  • 向GateSession加入PingComponent,组件就是向客户端不断的向Gate服务器发送消息,然后计算一下ping值
  • 然后向zoneScene添加SessionComponent,这个就是个字段组件,用来存储一个Session。这里存储了GateSession
  • 然后再向Gate发送C2G_LoginGate信息,并等待G2C_LoginGate信息的返回。得到返回则成功登陆
  • 最后触发LoginFinish事件

登陆完成后逻辑

  • LoginFinish事件就触发了展示UILobby,里面就一个进入地图。点击进入地图
  • 用刚刚存储的gateSession发送C2G_EnterMap消息,G2C_EnterMap带回来了UnitId(自己)和所有Units
  • 然后触发EnterMapFinish事件。加载地图场景并切换,移除UILobby,向zoneScene添加OperaComponent组件(操纵组件)
  • OperaComponent就是鼠标右键点击了地面,然后就会向Gate发送C2M_PathfindingResult消息,注意这个消息是IActorLocationMessage

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值