我想用与玩家推动该物体的刚体相同的力量拉动物体。但是,我不知道如何使这样的力量等于走进刚体的力量。
这是我的代码:
//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 :(得分:0)
哦,我想我明白了:一个玩家移动到一个物体,你想沿着玩家移动物体?
最简单的方法是到目前为止无视你想要的力量
object.velocity = player.velocity
(注意这里的术语:速度是无方向的,但速度是一个向量并有3个组件,所以上面的意思是object.velocity.x = player.velocity.x
,{{1等等。)
您可能需要计算一个力才能在Unity中工作,所以让我们推导出来。我将object.velocity.y = player.velocity.y
用于速度,v
用于下一个速度&#39;。正常时间更新看起来像
nv
现在我们想要object.nv = object.v + object.force*object.mass*∆t
:
object.nv == player.v
移动一切:
player.v = object.v + object.force*object.mass*∆t
通过这个等式,玩家根本不会受到影响,但是你进入的身体应该沿着&#39;沿着&#39;移动。和玩家一起。