unity学习(84)——玩家下线和“保服务器”(closeSession)

07-19 1747阅读

任务一:当进程结束时,要想办法通知服务器玩家已下线。

任务二:即便客户端发生异常,也要优先保障服务器的正常运行!

1.exe退了unity中gameobject不消失,再登exe,unity直接卡死自杀。不过此时服务器依旧坚挺!

unity学习(84)——玩家下线和“保服务器”(closeSession)

2.在服务器中找到leave,此时command=5

unity学习(84)——玩家下线和“保服务器”(closeSession) 对应的函数如下: 很明显,是收5发6,之前01234都有过了

unity学习(84)——玩家下线和“保服务器”(closeSession)

而且发现只有“发包下线”这一种下线方法!

unity学习(84)——玩家下线和“保服务器”(closeSession)

3.来到客户端 ,需要做两件事,处理6,发送5,游戏就是这样一点一点积累出来的!

3.1处理“126”

messagemanager中:

unity学习(84)——玩家下线和“保服务器”(closeSession)

 maphandler中:

unity学习(84)——玩家下线和“保服务器”(closeSession)

3.2发送“125”,现在情况如下:exe正常退出时,可以触发125函数,unity中断play不会触发125!exe126现在可以destroy游戏中的模型,而且可以多次重复登录!

经过尝试发现unity play中断关不干净,再次play才能关干净!

在服务器中增加断点,借助堆栈,看看125包是receive到的,还是服务器直接自己生成126的。

unity学习(84)——玩家下线和“保服务器”(closeSession)

看到session close的时候就算是明白了,是服务器自产生的!只要关的彻底,服务器应该问题不大。

unity学习(84)——玩家下线和“保服务器”(closeSession) 得到结论,现在的126是服务器产生的,不是任何一个客户端发送的!

unity学习(84)——玩家下线和“保服务器”(closeSession)

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]