目的
在场景中创建一个悬挂的物体,是把多个模型悬挂在一起可以自由摇摆,类似链条的效果
效果图
前言
什么是铰链关节?
铰链关节 将两个刚体(Rigid body)组会在一起,从而将其约束为如同通过铰链连接一样进行移动。它十分适合门、链条、钟摆等模拟效果。
步骤
打开unity3d场景,在里面创建一个立方体Cube。
接着给立方体Cube添加刚体 Rigidbody 组件
接着给立方体Cube添加 Hinge Joint 铰链关节 组件。
创建两个胶囊体Capsule,同样添加刚体 Rigidbody以及Hinge Joint铰链关节组件,通过旋转和移动工具把位置调整如下大致情况。
把立方体Cube里面的连接锚点Anchor的y设置为1,Axis设置轴向Z为1。
把立方体Cube拖放到Capsule中的Connected Body中作为悬挂的物体。
把Capsule拖放到Capsule(1)中的Connected Body中。
运行unity场景,就可以发现三个物体悬挂在半空中,在重力的作用下Z轴方向,左右进行摇摆。
备注
默认效果一般达不到真实感的要求,需要根据需求调节铰链中的Spring弹力、Motor马达、Limits限制约束等的属性值。
属性功能
属性 | 功能 |
Connected Body | 连接的对象,如果没有设置,则连接到世界 |
Anchor | 自身摆动的轴的位置。该位置在本地坐标系中定义 |
Axis | 绕着某个轴旋转。 |
Auto Configure Connected Anchor | 如果启用此选项,则将自动计算 Connected Anchor 位置以匹配 anchor 属性的全局位置。这是默认的,如果禁用此选项,则可以手动配置连接锚点的位置。 |
Connected Anchor | 手动配置连接对象的锚位置 |
Use Spring | 与连接体相比,弹簧使刚体达到特定角度 |
Spring | 使对象移动到该位置的力 |
Damper | 阻力,该值越高,对象减速越快 |
Target Position | 弹簧的目标角度。弹簧朝向以度为单位测量的角度拉动 |
Use Motor | 使用电机使物体旋转 |
Target Velocity | 对象试图达到的目标速度 |
Force | 为了达到速度而施加的力 |
Free Spin | 勾选后,电机永远不会用于制动旋转,只能加速。 |
Use Limits | 勾选后,铰链的角度将限制在最小值和最大值之内 |
Min | 旋转的最小角度。 |
Max | 旋转可以达到的最大角度。 |
Bounciness | 当物体达到最小或最大停止限制时,物体会反弹多少 |
Contact Distance | 在距离极限触点的接触距离内将持续存在以避免抖动 |
Break Force | 破坏此关节需要的力。 |
Break Torque | 破坏此关节需要的扭矩。 |
Enable Collision | 选中时,这将启用与关节连接的物体的碰撞 |
Enable Preprocessing | 禁用预处理有助于稳定不可能完成的配置。 |
Mass Scale | 质量缩放 |
Connected Mass Scale | 连接体的质量缩放 |