【问题标题】:In Unity 3d 4.3, collision detection is not working. There are two objects, both objects have rigidbody component在 Unity 3d 4.3 中,碰撞检测不起作用。有两个物体,两个物体都有刚体分量
【发布时间】:2014-01-30 16:48:05
【问题描述】:

我正在使用两个具有刚体组件的对象。 但是两个对象都没有相互传递。

一个对象用作平台使用

road.Translate(0,0, -speedcal * Time.deltaTime);

游戏一开始就使用 object.Translate 方法,就像在 Temple run 中一样。

现在在我的游戏中,新道路(平台对象)生成工作正常。 但是玩家和道路没有碰撞。他们互相擦肩而过。

谁能告诉我如何将碰撞检测或刚体与已经平移的对象一起工作。

【问题讨论】:

  • 两个对象在同一层吗?或者在可以相互碰撞的图层上?
  • @Thaven 我的所有对象都有默认图层我需要更改或添加新图层吗?
  • 可能在其中一个对撞机上检查了“Is Trigger”
  • @Kay 默认未选中,我保持原样

标签: c# unity3d


【解决方案1】:

我能想到三个可能的原因;检查您是否处于这些情况:

  • 您的对象没有附加非运动刚体。考虑到您的一个对象必须表现出附加的非运动刚体,如 documentation 中所述。

  • 如果您配置了Layer Collision Matrix编辑->项目设置->物理),您应该检查两个对象是否在同一层,或者它们的层可以彼此互动(正如 Thaven 在评论中所说)。

  • 您的速度 (speedcal) 非常高,您遇到了“子弹穿纸”问题。基本上,在这种情况下,物体的速度太高,碰撞检测系统无法检测到路口。

【讨论】:

  • 我的 speedcal 从 25.0f 开始到 50.0f public float speedcal = 25.0f;
  • @RaviPal:如果你的速度不高,你应该检查列表的第一个点(这是一个常见的错误)。
  • 我的游戏就像地铁冲浪者,我在碰撞检测方面遇到了问题。我的播放器正在通过平台
猜你喜欢
  • 2014-04-19
  • 1970-01-01
  • 2017-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多