2d游戏,两个角色,一个玩家一个敌人,都加了刚体,然后新建了两个子物体(子物体标签与父物体不同),分别加了collider,其中一个collider是角色的生命体碰撞检测,不带trigger,另一个collider是警界区域,比角色的collider大,带trigger。
这里面有四种判断情况:
1. 玩家的警界区碰到了敌人的生命体,发现敌人;
2.敌人的警界区碰到了玩家的生命体,发现角色;
3.玩家的生命体和敌人的生命体碰撞,角色死亡;
4.玩家的警界区和敌人的警界区碰撞,不发生任何事情。
第1种,脚本挂在玩家的警界collider的子物体上,分别用OnTriggerEnter2D,OnTriggerEnter2D判断是否碰到敌人的生命体collider,用tag判断;
第2种,脚本挂在玩家的生命体collider的子物体上,分别用OnTriggerEnter2D,OnTriggerEnter2D判断是否碰到了敌人的警界区collider,用tag判断;
第3种,这是困扰了我半天的地方,两个生命体是没有trigger的,所以要用OnCollisionEnter2D判断。我单独写的死亡脚本挂在玩家的生命体collider和子物体上,但是这里无法用tag判断,因为两个生命体collider都是各自的子物体,而碰撞检测是检测有刚体的物体也就是其父物体,用coll.collider.tag判断或者coll.collider.name判断都是父物体,后来查到应该是用coll.collider.tag判断,就可以找到子物体的collider了,问题解决。
第4种情况忽略。
网友评论