2017-02-20 126 views
0

我想用與玩家推動物體剛體相同的力拉動物體。但是,我不知道如何使這樣的力量等於走進剛體的力量。Unity Pushing Object Script(Little Big Planet like)

這裏是我的代碼:

//if can push and holds button for pushing 
other.GetComponent<Rigidbody>().AddForce(new Vector3(player.moveInput.x*player.speed*mass, player.moveInput.y * player.speed * mass, player.moveInput.z * player.speed * mass), ForceMode.Impulse); 

現在上面的代碼只是使箱飛力比我預想的要大得多。

+0

你是否問過如何用物體推動玩家以與他推動物體相同的力量?你也應該發佈整個代碼並更好地解釋你所要求的。 – Universus

+0

我在問如何爲玩家提供一個拉動腳本來拉動物體,這樣當他移動物體時,保持在一定的距離內,我該如何實現這個目標? –

+0

_「...力量等於步入剛體的力」_是什麼意思?什麼是「走路的力量」?另外,什麼是'player.moveInput'? – pingul

回答

0

哦,我想我明白了:一個玩家移動到一個物體上,並且想要沿着玩家移動物體?

做到這一點,最簡單的方法是迄今爲止忽視的力量,只要你想

object.velocity = player.velocity 

(注意這裏的術語:速度是沒有方向的,但速度是矢量,有3個部件,因此上述手段object.velocity.x = player.velocity.xobject.velocity.y = player.velocity.y等)


您可能需要計算力爲它的團結工作,所以讓派生日在。我將使用v作爲速度,nv作爲'下一個速度'。一個正常的時間更新看起來像

object.nv = object.v + object.force*object.mass*∆t 

現在,我們希望object.nv == player.v

player.v = object.v + object.force*object.mass*∆t 

移動所做的一切:

object.force = (player.v - object.v)/(object.mass*∆t) 

有了這個公式玩家不會造成任何影響,但你進入的身體應該與玩家一起「移動」。