我是Unity新手,使用这种方法有问题。如有任何帮助,不胜感激。
目前,我有一个盒子gameObject
(客户),它落在另一个盒子gameObject
(表)上。具有OnCollisionEnter2D
方法的脚本附加到tableBox对象,并使用标签检查customerBox是否与之碰撞。问题是,尽管发生碰撞,OnCollisionEnter2D
似乎根本没有被调用,因为Debug.Log中没有出现任何东西。两个盒子都有Rigidbody2D
和boxCollider2D
。
我试过将Rigidbody2D属性更改为动态,并仔细检查标签是否正确。也有可能,脚本的tableBox是不运行在所有,如果是这种情况下,我不知道如何修复,并将感谢建议。
方法如下:
void OnCollisionEnter2D(Collision2D collision){
Debug.Log("in the method.");
if(collision.gameObject.tag == "customer")
{
Debug.Log("Collision detected!");
}
}
你的代码看起来不错。检查以下
- 两个刚体都设置为动态
- 两个物体都有2D碰撞器。
- 两个碰撞器没有被设置为触发器。
- 检查图层碰撞矩阵(Edit>Project settings>Physics2D)
是"碰撞器组件上的复选框未选中?检查游戏对象是否正确配置(图层,碰撞器,标签,脚本等),如果你有图层,检查物理设置;)