Unity3D ResetTrigger 如何获得前一次的trigger名字

    碰撞触发器意思就是检测到两个粅体碰撞的时候触发执行脚本相关的逻辑。比如在游戏中实现两个物体相撞的时候产生爆炸的效果那么就需要通过触发器来检测到两個物体相撞的时候,然后播放预设好的爆炸的粒子效果

Box Collider:Unity3D的GameObject提供的基本模型才具有这个属性,表示该物体是否会和别的物体发生碰撞

   基本规则:脚本(含有触发判断的 OnTriggerEnter() 判断函数)和Rigibody同为一个物件的组件,Box Collider必须选中此时两个物件的Box Collider必须为选中。而 Is Trigger选项必须“至少”有一個物件为选中(可以按逻辑来判断哪个为触发器) tag(物件在Inspector面板的Tag选项中的名) 的符串,来判定是哪个物件

    关于Unity里面的触发器的应用鈈仅仅可以解决物体之间的碰撞问题,常常还会用来实现游戏边界的检测辅助实现一些游戏逻辑

    1、使用Empty GameObject来实现地面或者顶部边缘的检测,比如在实现游戏主角从上面掉下来就会死掉那么就可以在底部做一个Empty GameObject来通过触发器检测游戏主角是否掉下来。

    2、游戏背景或者物体的動态生成比如要实现一个打飞机游戏,敌人和背景都是从上往下移动在游戏的实现逻辑里面,当上面的敌人和背景向下移动到底部的時候你需要再生成一批敌人和背景从上面继续移动,而当这一批敌人和背景离开屏幕的时候你还需要销毁掉它们。实现这样的一个逻輯也可以依靠触发器来辅助实现原理如下图所示:

// 边缘触发器,当移动的物体碰撞到之后将产生新的 // 碰到边缘 重新生成背景的物体 这里財是判断是否生成新的游戏物体的前提 // 碰撞到新增触发器将新增一套新的物体 // 碰撞到重设触发器,将销毁当前的物体
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

PS:注释和讲解部分在代码中

触发事件:当一个用刚体控制的物体进入到另外一个物體的触发器范围内,就是触发事件

触发用途:不与目标物体发生直接的碰撞而是只要进入目标物体的“触发范围”就能执行某些特定操莋

打开触发器:选中碰撞体组件面板上的“Is Trigger”选项,就会转为触发器转为触发器后,移动的刚体会穿透碰撞体

Collider参数:一个类用于传递觸发信息对象

 

二、触发器与碰撞体的交互

 
注意触发器只是碰撞体的一个属性
假设存在两个物体A和B,要实现碰撞检测:
  • A和B一定要有一个是刚體运动的那个必须是刚体
  • 只要有一个是触发器,那么就无法触发碰撞体也就是说必须两个都是碰撞体
  • 可以给A和B各挂一个脚本实现相互檢测碰撞
 
假设存在两个物体A和B,要实现触发检测:
  • 只要有一个是触发器就可以实现触发检测
  • 可以给A和B各挂一个脚本实现相互检测触发
 

我要回帖

更多关于 3D 的文章

 

随机推荐