unity-物理关节
在Unity中,物理关节(Physics Joints)是用来将两个物体(通常是刚体,Rigidbodies)连接在一起的组件。物理关节可以限制它们之间的相对运动或施加特定的物理行为,从而创建复杂的运动和交互效果。Unity提供了多种不同类型的物理关节,每种关节都有特定的用途和特性。以下是一些常见的物理关节类型:1. 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-固定关节
还是以上面两个立方体物理,将弹簧关节组件移除,添加固定关节
这样,这两个立方体就固定在一起了。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)