触发器不起作用,明明都按要求做了,哪里错了呢?

img

img

img


两个物体(僵尸和豆都挂载了collider,勾了istragger,并且添加了刚体,代码
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag!="zombies")
{
return;
}
Destroy(this.gameObject);
}
结果豆子还是直接穿过僵尸,没有任何反应

你把Rigidbody组件的Simulated属性取消勾选了,其它Collider就没办法发生物理仿真交互了。


1、给子弹和僵尸都添加Rigidbody 2D组件勾选Simulated属性,为了防止收到重力的影响,展开下方的Constraints,将里面的Freeze Position里的Y轴勾上(冻结Y轴)
2、给子弹和僵尸添加对应的Collider,勾选Is Trigger
3、上面的move脚本挂载给子弹


一点小小的建议:
1、类名首字母大写(Move)
2、OnTriggerEnter2D方法里面简写一成这样:

private void OnTriggerEnter2D(Collider2D collision)
{
  if (collision.tag == "zombies")
  {
    Destroy(this.gameObject);
  }
}

3、既然是为了碰撞,感觉没必要用触发检测,直接用碰撞检测就行了(不勾选Is Trigger;检测方法改为OnTriggerEnter2D

destory那句放else{}里?(我没学过unity我瞎说的)