【问题标题】:Change velocity of rigidbody using AddForce?使用 AddForce 改变刚体的速度?
【发布时间】:2019-05-09 10:53:28
【问题描述】:

我制作了一个刚体控制器,它基于控制固定更新内部对象的速度。只有当我完成时,我才意识到这个link 说你应该在固定更新中使用rigidbody.velocity,因为它会导致不良行为。

是否有我可以使用的数学方程式或某种解决方案,以便我可以在固定更新中使用rigidbody.AddForce 来计算每帧的力,这将导致已经具有行为计算的Vector3 Velocity?

澄清一下,我有速度,我需要强制调用 Fixedupdate 以达到/保持该速度。我不太确定到底需要什么样的解决方案,所以如果这是一个愚蠢的问题,我深表歉意。我只是不知道我应该如何处理它。

谢谢!

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    要计算达到速度所需的力的大小,您需要使用方程式 Ft=mV - mU 其中 F = 力,t = 时间,m = 质量,V = 所需速度,U = 电流速度。

    假设您的起始速度为 0,方程式将如下所示:

    Vector3 force = (rigidbody.mass * desiredVelocity) / Time.fixedDeltaTime;
    

    desiredVelocity 应该是您希望对象移动的方向的 Vector3。

    如果对象已经在移动,使用这个:

    Vector3 force = ((rigidbody.mass * desiredVelocity) - (rigidbody.mass * rigidbody.velocity)) / Time.fixedDeltaTime;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      • 2022-06-25
      • 1970-01-01
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多