unity碰撞器和触发器的区别
2020-08-20 · 百度认证:北京中公教育科技官方账号
例如玩王者荣耀时,使用英雄推搭时,到达塔攻击范围时,塔会自动的攻击英雄,而英雄到达塔下,可以使用英雄去攻击塔,上述的一系列情况我们在Unity中就可以使用触发器和碰撞器去实现上述的功能。
经典的跑酷类型游戏神庙逃亡是Unity开发的一款游戏,在玩耍过程中,当人物碰到下图中黄色类似金币的物体时,会自动吸收物体,相同类似的游戏场景还有很多很多,然而这些功能在Unity中可以使用碰撞器或者触发器实现。
那么到底什么是碰撞器或者触发器呢,它们又有什么特点实现需要什么条件?接下来我们来一一介绍:
在Unity中会经常发现很多游戏物体身上都有着下图所展示的组件,这个物体就是我们上述所说的碰撞器。
当我们在场景中创建基本游戏物体后,引擎会自动的为该物体加上Collider(碰撞器)组件,其主要功能是进行碰撞检测。对于规则的游戏物体可以使用引擎提供的碰撞器,对于一些大的场景,其碰撞网格可以由建模师提供。
使用碰撞器有一个特点就是,物体一般情况是不会穿透,就类似于我们行走在路上不小心和路人相撞,或者玩一些刺激的赛车游戏,两辆赛车相撞,这就是我们的碰撞检测在发生作用。而想要发生碰撞,必须得具备三种条件!
1:两个相碰撞的物体身上必须得有碰撞器,也就是Collider,2:其中一个物体身上必须具备刚体,3:两个物体需要发生相对运动。
只要满足了上述的条件,我们在灵活的使用代码就可以制作出我们想要的效果了。
上述中我们介绍了碰撞器到底是什么,发生碰撞的条件,以及一些使用的场景,接下来我们一起来看看触发器到底是什么!触发器在生活有很多例子,假设进入到一些门口时,当我们踏入到一定范围,门会自动打开,这其实就是触发器在现实生活中的例子,游戏中依然也是,例如下图中,人物走回家的时候会自动的恢复血量,这其实就是在使用触发器
触发器和碰撞器一样,如下图所示:
唯一的区别就是是否勾选了Is Trigger,勾选了之后就是一个触发器,触发器是可以穿透,而碰撞器不可以。
Unity中的碰撞体主要由2个组件来完成
- 刚体Rigidbody
- 碰撞体Collider,它可以是触发器Trigger
碰撞产生的条件是
- 两个物体,必须至少有一个带有Rigidbody。可以简单地认为,带有Rigidbody的碰撞的产生体,而带有Collider是碰撞的接受体
- 带有Rigidbody必须带有一个Collider,碰撞是针对Collider的,Rigidbody只是标记了某个物体是一个能够产生碰撞的物体
Collider和Trigger的区别
Collider它表示是一个实体,是有体积的,碰撞体之间在正常情况下是无法穿插的
Trigger它是虚体,正常情况下是可以穿插的。
比如说墙,一般就是一个Collider,人物无法穿墙;而一个传送门,就是一个Trigger,人物可以走进去