2016-04-03 32 views
0

有沒有辦法獲得碰撞接觸力?我試圖通過獲取OnCollisionEnter()方法中的速度來完成此操作。但是它在接觸後給予速度,這對我沒有用處。獲得碰撞接觸力

+0

嗨,你有沒有得到你的問題得到解決?如果不是,請更新您的問題,以表明現有答案未能成功解答您的問題。謝謝! – Serlite

回答

1

絕對!如果你檢查Unity文檔,有一個方便的變量叫Collision.impulse。這是最近才引入的Unity 5.2所以如果你還沒有更新,請考慮這樣做。 (否則,您將被迫使用浮動在互聯網上的現在不贊成使用的解決方案之一。)

基於文檔,要獲得應用的力量,您只需將該值除以最後一幀的Time.fixedDeltaTime(因爲在物理學,impulse = force * time):

void OnCollisionEnter(Collision col) { 
    Vector3 collisionForce = col.impulse/Time.fixedDeltaTime; 
    // And now you can use it for your calculations! 
}