Unity - A计划(一年有效期) 扫二维码继续学习 二维码时效为半小时

(61评价)
价格: 2208.00元
[UNET] Animator.Play 会执行两次
世界的彼岸发起了问答2018-01-23
10
回复
981
浏览

第39行还有66行,无论客户端攻击服务端还是服务端攻击客户端,或者客户端攻击客户端,收到伤害时都会播放两次动画,造成了抖动。  

QQ:57064064

所有回复
  • 老师_德鲁伊 2018-01-24

    你好,你这个是TakeDamage里面在39行,和40行调用了两次动画播放

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 世界的彼岸 2018-01-24

    应该不是这个问题,TakeDamage加了Server的特性,只会在服务端执行。而Rpc开头的只会在客户端执行。不知道是不是Unity自带的BUG,这个问题之前查了5天未找到答案。

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2018-01-25

    服务器端也是作为客户端存在的,所以你在调用客户端方法的时候,服务器端也会调用的

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 世界的彼岸 2018-01-25

    我在Rpc做了判断,如果是isServer 就做return处理,然后拥有[server]特性的方法是只在服务器上执行的。试过了几种写法,播放两次的颤抖依然存在,不知道是不是unity的bug。

     

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 世界的彼岸 2018-01-25

    而且输出日志这个方法也只调用了一次,但是animator.Play 依然后重复执行,播放时会抖一下,重复进行了播放。求一个合理的写法

     

     

    • siki 2018-01-25

      可能是isServer没有正确 赋值哦,在 两次play之前都作一下print输出,把isServer的值也输出一下在服务器端,检查一下是否是isServer没有正确的赋值

      (1) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录注册
  • 世界的彼岸 2018-01-25

    isServer 是NetworkBehaviour类自带的,用来区分是否服务端的。会自动进行赋值的。个人感觉问题出在 animator.Play 上面。

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 世界的彼岸 2018-01-28

    自己顶一下

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 世界的彼岸 2018-01-30

    求解答,,,,,,

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2018-01-30

    两次play之前都作一下print输出,把isServer的值也输出一下在服务器端

    先按照这个来做一下,确定一下,两次play都是在哪里调用的以及isServer的值

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!