一种Unity碰撞函数OnTriggerEnter不触发的原因

两个字:层级

一般来说,OnTriggerEnter函数不触发多数都是由于Is Trigger没有勾选,还有可能是如下面所述。
在Edit——ProjectSettings——Physics可以看到PhysicsManager下部的Layer Collision Matrix,简单说,只有勾选上的一组的两层物体才能触发。如下图所示,第一行第一格表示Default层级的物体与Obstacle层级的物体触发有效,而第一行最后一格表示Default层级的物体与Default层级的物体触发无效。如果因为不符合这个设置而导致不能触发,就需要调整物体所在的层级。比如人物在Default层级,而传送门在Default层级,这样OnTriggerEnter无法触发,可以将传送门改为Obstacle层级就可以触发了。

一种Unity碰撞函数OnTriggerEnter不触发的原因