Unity 中 2D 碰撞检测失灵解决办法

有两个2D游戏对象,每个都有2D碰撞机和不运动的2D刚体。游戏播放时,一个像另一个移动,并且撞到了它。
不过,在移动的GameObject有着如下的方法:

void OnCollisionEnter(Collision collision) 
{
    print( "Collided with someone" );
}

Print语句从不print,所以推测方法从不被调用,我哪里出了问题呢?

原问题:Unity 2D: Collision detection not working

阅读 18.5k
2 个回答

T. Kiley
正如我在评论中所说到的,Unity复制所有的2D物理方法,在最后加上“2D”两字,就拿你的例子来说,应该改成下面这样:

void OnCollisionEnter2D(Collision2D collision)

其他2D物理的东西也一样。

新手上路,请多包涵

根据文档,注意这一行:“Note that collision events are only sent if one of the colliders also has a non-kinematic rigidbody attached.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Stack Overflow 翻译
子站问答
访问
宣传栏