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 翻译
子站问答
访问
宣传栏