码迷,mamicode.com
首页 > 其他好文 > 详细

如何在游戏客户端和服务器之间精确同步玩家的状态?

时间:2015-03-15 09:37:57      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:unity   unity3d   unity3d培训   unity3d极致学院   

欢迎来到unity学习unity培训unity企业培训教育专区,这里有很多Unity3D资源Unity3D培训视频Unity3D教程Unity3D常见问题Unity3D项目源码,【狗刨学习网】unity极致学院,致力于打造业内unity3d培训、学习第一品牌。
假定技能有前摇,攻击,后摇3个阶段。

前摇阶段可以理解为发招前的酝酿或者念几句咒语,攻击阶段可以理解为开始挥刀砍直至砍中目标身上这个时间段,后摇阶段可以理解为收刀恢复攻击姿势的阶段。


我们的技能的连招系统允许在某些技能(称为技能A)的后摇阶段,使用另一个技能(称为技能B)的时候,会忽略掉技能B的前摇阶段,直接进入技能B的攻击阶段。


现在玩家使用了技能A,并且进入了技能A的后摇阶段,假设技能A的后摇阶段为500ms,在技能A的后摇阶段快结束的时候,玩家使用技能B,为了保证游戏效果,技能表现是客户端先行的,客户端判断可以忽略掉技能B的前摇从而直接进入技能B的攻击阶段,服务器收到使用技能B的消息,此时极有可能出现技能A的后摇阶段已经结束,导致服务器端从技能B的前摇阶段开始。所以就会导致玩家使用技能的时候,会出现客户端和服务器对是否忽略前摇不一致的情况,像上面的这种情况,客户端明显可以看到技能B砍中目标隔了一会之后才出现伤害的打击字,因为服务器多计算了一个前摇的时间。


对于这种情况,我想了一下几个思路:


1:服务器端适当延长技能的后摇阶段时间
2:客户端向服务器发送使用技能的消息时,把是否忽略前摇一起发送给服务器

更多内容,请访问【狗刨学习网】unity极致学院

如何在游戏客户端和服务器之间精确同步玩家的状态?

标签:unity   unity3d   unity3d培训   unity3d极致学院   

原文地址:http://blog.csdn.net/sauwque/article/details/44262391

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!