首頁>Game>source

当我釋放钥匙時,我想立即停止(而不是立即停止),以免滑動.我不想使用 rb.isKinematic = false; 因為它就這麼停止了 所以就像我想的那樣:

x = GetAxisRaw("Horizontal");
z = GetAxisRaw("Vertical");
move = transform.right * x + transform.forward * z;
if (no inputs pressed)
{
   rb.AddForce(force * -maxSpeed); // maybe force will be the current velocity
}

我尝試過此方法,但似乎没有任何反應.因此,我想我需要一些改进

最新回復
  • 5月前
    1 #

    您可以使用Unity的刚體物件修改drag屬性,该屬性用於修改物件在不受外力作用時减速的速度。

    >

    或者,或者如果您想躺下然後變脏,只需做

    velocity = velocity * 0.979;
    

    每当您想减慢物件速度時,都会更新一次.在0到1之間調整數值,以達到所需的减速速度。

    拖動是精確建模最困难的事情之一.我们使用许多不同的方程式對現實世界中的阻力进行建模(這變得極為複雜),但通常在遊戲中进行實時模擬時,会使用高度簡化的版本.在此讨論提供的示例中,您可以看到一些人(以及大多數物理學引擎)使用二次值對阻力进行建模.這也许更現實,但並不一定要获得您想要的結果。

    我相信他们在初學者物理Class程中教授的阻力的方程式通常為Fdrag = -v * b,其中b是某个常數.从本質上讲,這已经是您已经拥有的东西了,但是在遊戲中並不是一个理想的解決方案.最後,選擇最適合您的專案的方法。

  • unity:為什麼我不能在此指令碼中引用" targetVelocity"變數?
  • unity:Unity3D:从轨道發射弹丸