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是什么情况,还没深入试验过。

  • 相关阅读:
    scala-class
    uva-10422-骑士-搜索题
    HDU 5724
    HDU 5728
    CodeForces 414B
    CodeForces 698A
    Codeforces Round #363 (Div. 2)
    BestCoder 2nd Anniversary 1001 Oracle
    BestCoder 2nd Anniversary 1002 Arrange
    HDU 4798
  • 原文地址:https://www.cnblogs.com/wantnon/p/5617834.html
Copyright © 2011-2022 走看看