【问题标题】:Unity3D - Prevent RigidBody properties from changing dynamically at runtimeUnity3D - 防止刚体属性在运行时动态变化
【发布时间】:2014-02-27 15:37:55
【问题描述】:

我对 Unity 很陌生,我只是在玩骰子滚动模拟。我有一个带有刚体的立方体和与之关联的 StandardAssets DragRigidbody 脚本。当我运行预览时,我可以很好地拖动立方体,如果我抛出立方体,它就会朝那个方向飞走并像我预期的那样滚动。

复制多维数据集并运行预览时出现问题。两个立方体仍然可以被拖动,但不能被扔掉。如果我试图扔掉它们中的任何一个,当我松开鼠标按钮时,立方体就会完全停止移动。如果它当时恰好在空中,那么它会非常非常缓慢地飘回,就好像几乎没有重力一样。

我确实知道是什么导致了这种行为,但我不知道为什么会这样。这些是在我运行预览之前立方体的刚体属性(我想要的值):

质量:1
阻力:0.5
角阻力:0.5
// 其余为默认值

...但是当我使用多个多维数据集运行预览时,只要将多维数据集拖到这些位置,我就可以看到值发生变化:

质量:1
阻力:10
角阻力:5

所以这就是导致丢失功能的原因。这些值不会随着一个立方体而变化,那么为什么它们会随着多个立方体而变化呢?

【问题讨论】:

    标签: unity3d rigid-bodies


    【解决方案1】:

    事实证明,与每个立方体关联的 DragRigidbody 脚本的 Drag 和 Angular Drag 属性覆盖了每个 Rigidbody 的相同属性。 DragRigidbody 脚本值分别为 Drag 和 Angular Drag 的 10 和 5,而我之前从未注意到它们。

    我仍然不知道为什么我只使用一个立方体就没有问题。无论如何,将 DragRigidbody 脚本的值设置为与 Rigidbody 中的值相同即可。

    【讨论】:

      猜你喜欢
      • 2013-11-04
      • 2023-03-08
      • 1970-01-01
      • 2016-08-17
      • 2017-05-13
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多