2015-11-28 43 views
0

我在計算物體的垂直運動時遇到了麻煩。 假設我有一個物體固定在天花板上,原始速度和位置可能會有所不同。電子遊戲中的Mecanics:彈簧和重力

所以,我想是這樣的:

Vector3 springSpeed = attachPoint - position; 
Vector3 speed = initialSpeed + new Vector3(springSpeed.x, springSpeed.y - 9.81, springSpeed.z); 

// and prepare for next frame 
initialSpeed = speed; 

但是,這似乎並沒有工作,我不明白爲什麼。 我怎樣纔能有正常的行爲?

+0

https://en.wikipedia.org/wiki/Hooke%27s_law – MickyD

+0

有沒有在這裏沒有一般的簡單情況:( – Mat

回答

1

你不應該自己計算一切。

您可以使用Unity的物理引擎爲您完成所有這些工作,創建一個對象,添加一個剛體組件以便模擬物理,然後在「天花板」上創建另一個對象作爲錨點,在第一個對象上添加一個Spring組件,並將連接的主體設置爲第二個對象。

這裏查看更多信息: