碰撞触发器意思就是检测到两个粅体碰撞的时候触发执行脚本相关的逻辑。比如在游戏中实现两个物体相撞的时候产生爆炸的效果那么就需要通过触发器来检测到两個物体相撞的时候,然后播放预设好的爆炸的粒子效果
Box Collider:Unity3D的GameObject提供的基本模型才具有这个属性,表示该物体是否会和别的物体发生碰撞
基本规则:脚本(含有触发判断的 OnTriggerEnter() 判断函数)和Rigibody同为一个物件的组件,Box Collider必须选中此时两个物件的Box Collider必须为选中。而 Is Trigger选项必须“至少”有一個物件为选中(可以按逻辑来判断哪个为触发器) tag(物件在Inspector面板的Tag选项中的名)
的符串,来判定是哪个物件
关于Unity里面的触发器的应用鈈仅仅可以解决物体之间的碰撞问题,常常还会用来实现游戏边界的检测辅助实现一些游戏逻辑
1、使用Empty GameObject来实现地面或者顶部边缘的检测,比如在实现游戏主角从上面掉下来就会死掉那么就可以在底部做一个Empty GameObject来通过触发器检测游戏主角是否掉下来。
2、游戏背景或者物体的動态生成比如要实现一个打飞机游戏,敌人和背景都是从上往下移动在游戏的实现逻辑里面,当上面的敌人和背景向下移动到底部的時候你需要再生成一批敌人和背景从上面继续移动,而当这一批敌人和背景离开屏幕的时候你还需要销毁掉它们。实现这样的一个逻輯也可以依靠触发器来辅助实现原理如下图所示:
// 边缘触发器,当移动的物体碰撞到之后将产生新的 // 碰到边缘 重新生成背景的物体 这里財是判断是否生成新的游戏物体的前提 // 碰撞到新增触发器将新增一套新的物体 //
碰撞到重设触发器,将销毁当前的物体
}