【问题标题】:Changing a Spring Joint's resting length in Unity3d在 Unity3d 中更改弹簧关节的静止长度
【发布时间】:2017-02-07 06:10:39
【问题描述】:

根据 Spring Joint 的文档,弹簧的静止长度(弹簧不会尝试将其连接的两个主体拉或推在一起的长度)是在创建关节时计算的两个主体之间的距离.

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

有没有办法用 Spring Joint 来完成这个?如果没有,如何使用 Configurable Joint 创建具有固定长度(可以在脚本中更改)的弹簧?

【问题讨论】:

  • 我认为您需要修改 Tollerance 属性。如果您将 Spring 属性设置为非常高的值,以使弹簧几乎是僵硬的,您可以很容易地看到 Tollerance 的效果。
  • 谢谢 Nika,我会检查一下。但是,这感觉像是一种 hacky 的方式来处理这个问题,真的没有办法明确告诉 Unity 弹簧应该是多长吗?干杯!

标签: unity3d physx


【解决方案1】:

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

压缩 = 力/速率

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

我希望这会有所帮助。

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-03-13
      • 2015-11-29
      • 1970-01-01
      • 2018-12-09
      • 2023-01-05
      • 1970-01-01
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多