【问题标题】:Collision / Rigidbody not working properly in small objects碰撞/刚体在小物体中无法正常工作
【发布时间】:2021-09-24 22:00:44
【问题描述】:

我有一个简单的多米诺骨牌场景,您可以在其中单击多米诺骨牌并用力将其敲开。 起初我的多米诺骨牌比例为 (x=0.1), (y=0.6), (z=0.3) 1 应该是 1 米,它们倒下没有问题,但太慢了。根据刚体上的统一文档,这完全有道理。

使用正确的尺寸。 游戏对象网格的大小比刚体的质量重要得多。如果您发现刚体的行为与您的预期不完全一致——它移动缓慢、浮动或碰撞不正确——请考虑调整网格资产的比例。 Unity 的默认单位比例为 1 个单位 = 1 米,因此导入的网格的比例保持不变,并应用于物理计算。例如,一座摇摇欲坠的摩天大楼与由玩具积木制成的塔楼的倒塌方式截然不同,因此不同大小的对象应建模为精确的比例。

所以我只是将多米诺骨牌的大小重新调整为 (x=0.01)、(y=0.06)、(z=0.03),这一次它们下降到所需的速度,但由于某种原因它们停止下降并且没有敲击下一个多米诺骨牌。

example GIF

我不知道为什么会发生这种情况,但我猜这是因为在计算物理时引擎不会浪费太多资源来计算甚至可能不会被计算机看到的小物体用户。

修改质量似乎没有任何作用,绘制和角度绘制都是0并且已经尝试了每种碰撞检测模式。

是否有任何解决方案或解决方法?

【问题讨论】:

  • 你的对撞机的比例设置正确吗?应该和多米诺骨牌一样大。
  • 一开始i虽然一样,但是box collider的scale在x,y,z中设置为1,这意味着collider和object的维度是一样的。

标签: unity3d game-physics physics rigid-bodies collider


【解决方案1】:

根据我的经验,Unity 物理不喜欢太小的对象,因为它会引入舍入误差。游戏模拟通常不需要与您尝试登陆火星时相同的准确性。因此,我通常避免使用小于 0.1f 的刻度。

在您的情况下,我会将比例保持在 1.0f,而是尝试增加世界引力,将其从默认的 -9.81f 更改为 -98.1f(编辑 - 项目设置 - 物理)。或者将默认时间刻度从 1f 更改为 5f(编辑 - 项目设置 - 时间)。

一开始尽量不要做太大的改动,因为这可能会给游戏的其他部分带来奇怪的效果。

【讨论】:

  • 两种解决方案都有效,增加重力有预期的效果,但由于某种奇怪的原因,小多米诺骨牌自己倒下,所以我想我只是为了避免任何进一步的问题而去争取时间尺度。谢谢你!
猜你喜欢
  • 1970-01-01
  • 2016-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多