Unity:基本的2D刚体不会检测到碰撞

问题描述 投票:0回答:1

在玩Unity引擎时,我尝试在游戏中添加基本的碰撞检测。我创造了两个简单的物体,它们在不同的方向上移动,彼此相向(因此它们相互碰撞)。在OnCollisionEnter2D(Collision2D col)方法中,我放置了一个Debug.Log()来测试碰撞是否有效。

我按照官方Unity频道的教程,按照提供的确切步骤操作。但它仍然不起作用!我几乎阅读了谷歌上的所有帖子都有同样的问题,但仍未找到任何解决方案

我尝试了什么?

  • Z位置用于设置为0的两个对象。
  • 两个对象都有一个RigidBody2D和一个BoxCollider2D
  • 物体运动速度不是太快,它们移动速度非常慢(用于测试)(我已经读过,如果它们移动太快以至于它们在帧之间相互穿过,则不会检测到碰撞)
  • 两个触发器碰撞器不能碰撞 - 一个必须是常规对撞机(应用此)
  • 对象在同一层上,我检查了2D物理设置并确保所有层都可以相互交互。
  • 我的所有碰撞器和RigidBodies都是2D变体(这是我在互联网上阅读最多的解决方案,但没有为我修复它!)

以下是我想要碰撞的Gameobjects的两个截图。 (抱歉无法发布图片,因为我的名声太低了)

enter image description here enter image description here

unity3d 2d sprite collision
1个回答
1
投票

尝试将BodyType更改为Kinemetic

并使用Debug.Log()OnCollisionExit2D以及OnCollisionStay2D

© www.soinside.com 2019 - 2024. All rights reserved.