学员(5223)
课程(179)
分享
第39行还有66行,无论客户端攻击服务端还是服务端攻击客户端,或者客户端攻击客户端,收到伤害时都会播放两次动画,造成了抖动。
QQ:57064064
你好,你这个是TakeDamage里面在39行,和40行调用了两次动画播放
应该不是这个问题,TakeDamage加了Server的特性,只会在服务端执行。而Rpc开头的只会在客户端执行。不知道是不是Unity自带的BUG,这个问题之前查了5天未找到答案。
服务器端也是作为客户端存在的,所以你在调用客户端方法的时候,服务器端也会调用的
我在Rpc做了判断,如果是isServer 就做return处理,然后拥有[server]特性的方法是只在服务器上执行的。试过了几种写法,播放两次的颤抖依然存在,不知道是不是unity的bug。
而且输出日志这个方法也只调用了一次,但是animator.Play 依然后重复执行,播放时会抖一下,重复进行了播放。求一个合理的写法
可能是isServer没有正确 赋值哦,在 两次play之前都作一下print输出,把isServer的值也输出一下在服务器端,检查一下是否是isServer没有正确的赋值
isServer 是NetworkBehaviour类自带的,用来区分是否服务端的。会自动进行赋值的。个人感觉问题出在 animator.Play 上面。
自己顶一下
求解答,,,,,,
两次play之前都作一下print输出,把isServer的值也输出一下在服务器端
先按照这个来做一下,确定一下,两次play都是在哪里调用的以及isServer的值