目录

场景搭建

Hinge Joint-铰链关节

参数

Anchor

自动旋转

Spring Joint-弹簧关节

Fixed Joint-固定关节


在Unity中,物理关节(Physics Joints)是用来将两个物体(通常是刚体,Rigidbodies)连接在一起的组件。物理关节可以限制它们之间的相对运动或施加特定的物理行为,从而创建复杂的运动和交互效果。Unity提供了多种不同类型的物理关节,每种关节都有特定的用途和特性。以下是一些常见的物理关节类型:

1. Fixed Joint(固定关节):将两个物体固定在一起,使它们不能相对移动或旋转。这类似于用胶水粘住两个物体。

2. Hinge Joint(铰链关节):允许两个物体绕一个轴旋转,就像门铰链一样。它通常用于模拟门、车轮等可以绕轴旋转的物体。

3. Spring Joint(弹簧关节):通过弹簧力将两个物体连接在一起,可以模拟弹性连接,如弹簧或橡皮筋。

4. Configurable Joint(可配置关节):允许你配置各种参数,来实现更复杂和灵活的连接方式。它可以限制或允许特定的线性和角度运动。

5. Character Joint(角色关节):一种专门用于模拟角色骨骼的关节,允许骨骼在一定范围内旋转,用于创建复杂的角色动画。

6. Rigidbody Constraints(刚体约束):虽然不属于物理关节的一部分,但它允许你在某些轴上限制刚体的移动或旋转。

通过合理使用这些物理关节,开发者可以在Unity中创建更逼真和复杂的物理效果,例如机械臂、车辆悬挂系统、动态桥梁等。

场景搭建

一个平面,一个胶囊(代表玩家,已添加移动脚本),一个门

Hinge Joint-铰链关节

我们想让玩家触碰到门时,门会绕着一个轴旋转,而不是直接被放倒,此时就需要给门添加铰链关节。

在添加关键之前,先给门添加刚体组件,这样它才能拥有物理效果

然后给门添加铰链关键组件

参数

Anchor

Anchor控制的是这个轴的位置,原点是在物体的几何中心上。一个轴的总长度为1,正负轴各占0.5。如图:

z轴也是同理,由于画图技术有限,z轴我就不画了,都是一个意思。

而默认的值

它的意思就是铰链关键位置在物体的头顶的中心位置。(联想我上面画的图,很容易想象出来),如图:

而轴的值

它的意思是这个关节铰链绕着x轴的方向进行旋转。

而我们要做的门的效果应该是:轴的位置在门的左侧,绕着y轴(垂直轴)旋转。所以这两个参数改为:

然后就完成了,效果如下图。注意:需要将胶囊的刚体组件的冻结旋转选项全部勾上,防止胶囊碰撞后倒地(所以冻结x轴和z轴)和防止胶囊移动不受控制,因为绕y轴旋转的话,胶囊的x轴和z轴的方向不断发生变化,向右移动实际上是向物体的x轴移动,一旦旋转,向x轴移动就不一定是向右移动了(所以冻结y轴)

自动旋转

我们也可以设置门绕轴自动旋转,设置如图参数即可:

Spring Joint-弹簧关节

添加两个立方体,并都加上刚体组件

在给上面的立方体勾选

这样上面的物体就不受物理效果,即不受重力影响,可以悬空,这样可以模拟弹簧的端点。

然后再给它添加弹簧关节,并连接下面的立方体

Fixed Joint-固定关节

还是以上面两个立方体物理,将弹簧关节组件移除,添加固定关节

这样,这两个立方体就固定在一起了。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐