改变Unity3d中弹簧关节的静止长度

时间:2017-02-07 06:10:40

标签: unity3d physx

根据Spring Joint的文件记载,弹簧的静止长度(弹簧不会试图拉动或推动它连接的两个物体的长度)是一个距离。在创建关节时在两个物体之间计算。

但是,我希望能够在运行时更改此静止距离,并且文档中没有提及有关如何更改长度的任何内容。

无论如何使用Spring Joint实现这一目标?如果没有,如何使用可配置关节

创建具有设定静止长度的弹簧(可在脚本中更改)?

2 个答案:

答案 0 :(得分:1)

弹簧的静止长度取决于弹簧的弹簧刚度和施加的力。更大的力和/或更小的速率减少了静止长度。您可以将压缩深度计算为:

  

压缩=强制/速率

因此,指定静止长度需要您知道弹簧在静止时支撑的力。使用上面的等式,您可以计算弹簧在该长度处停留所需的弹簧刚度。

我希望这会有所帮助。

答案 1 :(得分:0)

在我看来,您正在寻找 Connected anchor 参数,它可以帮助您指定“连接对象的局部空间中连接关节的点”。 (https://docs.unity3d.com/Manual/class-SpringJoint.html)。

“静止距离”是连接的锚连接的身体之间的距离。

为了将其设置为特定长度,您必须:

  • 自动配置连接设为假
  • 根据你想要的长度手动设置连接的锚位置
  • *可选:重新激活自动配置连接(如果您希望在连接的主体移动时自动更新连接的锚点)

希望它能解决您的问题:)