使用AddForce改变刚体的速度?

时间:2019-05-05 23:34:48

标签: unity3d

我制作了一个刚体控制器,该控制器基于对fixedupdate内部对象的速度进行控制。只有当我完成后,我才意识到这个link表示您应该在固定更新中使用刚性主体。速度,因为它会导致不良行为。

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

请澄清一下,我有速度,我需要用力在Fixedupdate中调用才能达到/保持该速度。我不太确定到底需要哪种解决方案,所以如果这是一个愚蠢的问题,我深表歉意。我只是不知道该如何处理。

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

            Dvalues
DATE Ds
Jan  D1     12
     D2     18
     D3     13
Feb  D1     21
     D2     22
     D3     31
Aug  D1     32
     D2     56
     D3     82
Sep  D1     45
     D2     12
     D3     63

import pandas as pd import numpy as np data = pd.DataFrame ({'DATE': ['Jan', 'Feb', 'Aug', 'Sep'], 'D1': ['12', '21', '32', '45'], 'D2': ['18', '22', '56', '12'], 'D3': ['13', '31', '82', '63']},index=[0, 1, 2, 3]) data_d1 = data[['DATE','D1']].copy() data_d1 = data_d1.set_index('DATE') data_d2 = data[['DATE','D2']].copy() data_d2 = data_d2.set_index('DATE') data_d3 = data[['DATE','D3']].copy() data_d3 = data_d3.set_index('DATE') data_ds=pd.concat([data_d1,data_d2,data_d3]) datos_ds = data_ds.set_index('DATE',(D1,D2,D3)) 应该是您希望对象朝哪个方向移动的Vector3。

如果对象已经在移动,请使用以下方法:

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