Unity 2D - 冻结轴和AddForceAtPosition

时间:2015-08-28 04:48:30

标签: c# unity3d collision rigid-bodies

我正在学习Unity 2D,我想做这样的事情: example

基本上,角色会进入盒子/边缘并且它会翻倒。但!我想以某种方式锁定X轴。所以实际上它看起来有点像旋转简单90度(带某种加速度)。

我试过用rigidbody2d和edgecollider以及AddForceAtPosition来做这件事,但我失败了。

我真正想做的是锁定墙壁"并将力施加在刚体的顶部,这样它就会向右倾斜,但它根本没有用完。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

请记住,同样的逻辑适用于游戏中的物理,就像现实生活中的物理一样。只需制作一个铰链,将锚和连接的锚固定在底部的相同位置,并设置铰链的限制。

墙:

enter image description here

铰链:

enter image description here

我将较低的角度设置为接近90°,否则当墙壁掉落时,墙壁会变得不均匀。

请记住将Rigidbody2D和Box Collider放在墙上。

答案 1 :(得分:0)

首先,我会锁定您不想在刚体上移动的旋转轴,然后,如果您的对象原点位于对象的地面/底部,您可以向对象添加旋转扭矩以实现你想要的影响:) http://docs.unity3d.com/ScriptReference/Rigidbody.AddTorque.html

相关问题