zoukankan      html  css  js  c++  java
  • unity, 同步物体坐标一定要在LateUpdate中进行

    设a为主动物体,b为跟随物体。

    如果a,b都在同一个Update里更新坐标,那么两者自然是同步的。

    如果a在a.Update里更新位置,而b在b.Update里将自己的位置更新为与a相同,那就会有误差。

    而且即使a的运动非常缓慢平滑,b也会出现到处乱闪的情况(总之不是我们臆想得那样,b至多比a延迟一些而不会发生突变)。

    解决办法是不在b.Update中同步位置,而是在b.LateUpdate中同步位置,这样就一点儿误差也没有了。

    另外注意,这里a,b都是指普通物体。如果a或b是摄像机,还没研究过,先不轻易下结论。

    --补充:

    如果b包含particleSystem,而且(Simulation Space选的是local(其它没试)),那么如果只在LateUpdate中同步位置,某些情况下(比如Disable再Enable之后)粒子会变得不正常(抖动),经试验,需要在LateUpdate中同步位置的同时也在Update中同步。推测原因可能是因为particleSystem自身是在Update里更新的,而且在更新时会用到位置,所以我们应该在update时就把数据同步好。

    综上,最把握的方法是:Update,LateUpdate甚至FixedUpdate中都同步。

    另外注意,以上讨论都只是针对普通gameObject,至于camera是什么情况,还没深入试验过。

  • 相关阅读:
    C++_学习随笔_牛郎织女迷宫
    UE4复习5_蓝图接口简单应用
    UE4复习4_射线检测
    今日份学习: Spring中使用AOP并实现redis缓存?
    动态代理,AOP和Spring
    今日份学习:初步的springboot
    HTML常用标签
    关于类的笔记
    关于编码的一个笔记
    Java Socket例程3 UDP
  • 原文地址:https://www.cnblogs.com/wantnon/p/5617834.html
Copyright © 2011-2022 走看看