Unity3D 大型游戏 最后一站 源码 部分重点 英雄释放技能(15)
2017-03-13 17:28
357 查看
本文固定链接:http://blog.csdn.net/u013108312/article/details/61922467
上几节课我们已经讲了英雄的状态机管理和同步移动相关的。
今天这节课我们来讲讲英雄是怎么释放技能(包括普通攻击)。
这里我先来讲下技能同步原理。
就拿LOL这个游戏来说,他客户端的技能是先表现出来,然后服务器进行验证,接着再发送验证结果给客户端,最后客户端再修正表现结果。什么意思?
比如,LOL中的瞎子(盲瞎),他的q技能释放出去,刚好能打中敌人。
但是网络延迟比较卡,那么服务器发送回的验证消息还没有发送到客户端,那么客户端表现出来就会q技能穿过敌人(本来是表现出来是能击中的,但是网络卡了)。
等到打中验证消息发送到客户端的时候,然后敌人莫名其妙的被击中。
可见LOL中所有技能的验证都是在服务器,一切以服务器为准。
所以总的来说就是,玩家释放技能,客户端先行表现(创建特效),然后收到服务器的验证消息,然后修正击中表现结果。
OK,我们来看看最后一站中的具体实现。
上几节课我们已经讲了英雄的状态机管理和同步移动相关的。
今天这节课我们来讲讲英雄是怎么释放技能(包括普通攻击)。
这里我先来讲下技能同步原理。
就拿LOL这个游戏来说,他客户端的技能是先表现出来,然后服务器进行验证,接着再发送验证结果给客户端,最后客户端再修正表现结果。什么意思?
比如,LOL中的瞎子(盲瞎),他的q技能释放出去,刚好能打中敌人。
但是网络延迟比较卡,那么服务器发送回的验证消息还没有发送到客户端,那么客户端表现出来就会q技能穿过敌人(本来是表现出来是能击中的,但是网络卡了)。
等到打中验证消息发送到客户端的时候,然后敌人莫名其妙的被击中。
可见LOL中所有技能的验证都是在服务器,一切以服务器为准。
所以总的来说就是,玩家释放技能,客户端先行表现(创建特效),然后收到服务器的验证消息,然后修正击中表现结果。
OK,我们来看看最后一站中的具体实现。
相关文章推荐
- Unity3D 大型游戏 最后一站 源码 部分重点 英雄玩家同步移动(14)
- Unity3D 大型游戏 最后一站 源码 部分重点ResourceManager(2)
- Unity3D 大型游戏 最后一站 源码 部分重点GameStateManager(6)
- Unity3D 大型游戏 最后一站 源码 部分重点ResourceManager(2)
- Unity3D 大型游戏 最后一站 源码 部分重点 GameView-BaseWindow(16)
- Unity3D 大型游戏 最后一站 源码部分重点 对象池GameObejctPool(4)
- Unity3D 大型游戏 最后一站 源码 部分重点匹配战斗(三)(12)
- Unity3D 大型游戏 最后一站 源码 部分重点NetworkManager(二)(8)
- Unity3D 大型游戏 最后一站 源码 部分重点WindowManager(1)
- Unity3D 大型游戏 最后一站 源码 部分重点ResourceManager2(5)
- Unity3D 大型游戏 最后一站 源码 部分重点匹配战斗(一)(10)
- Unity3D 大型游戏 最后一站 源码 部分重点匹配战斗(二)(11)
- Unity3D 大型游戏 最后一站 源码 部分重点 GameView-LoginWindow(17)
- Unity3D 大型游戏 最后一站 源码 部分重点 显示FPS
- Unity3D 大型游戏 最后一站 源码 部分重点NetworkManager(三)(9)
- Unity3D 大型游戏 最后一站 源码 部分重点NetworkManager(一)(7)
- Unity3D 大型游戏 最后一站 源码 部分重点 整体框架(3)
- Unity3D 大型游戏 最后一站 源码 部分重点ResourceManager(2)
- Unity3D 大型游戏 最后一站 源码 部分重点匹配战斗(四)(13)
- Unity3D 大型游戏 商业游戏(Diablo War)源码 部分重点(1)