两个物体(僵尸和豆都挂载了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
)