unity3d中碰撞器和触发器的区别

比如玩王者荣耀的时候,塔到了塔的攻击范围就会自动攻击英雄,英雄到了塔就可以用英雄攻击塔了。在上述一系列情况下,我们可以使用触发器和碰撞器来统一实现上述功能。

经典跑酷游戏《神庙逃亡》是Unity开发的游戏。在玩的过程中,当角色触碰到下图中一个类似金币的黄色物体时,会自动吸收该物体。类似的游戏场景还有很多。但是,这些功能可以通过在Unity中使用碰撞器或触发器来实现。

那么到底什么是对撞机或者触发器,它们有什么特点,需要什么条件才能实现?接下来,我们来一一介绍:

在Unity中,经常会发现很多游戏对象都有下图所示的组件,这个对象就是我们上面提到的碰撞器。

当我们在场景中创建一个基本的游戏对象时,引擎会自动为该对象添加一个碰撞器组件,其主要功能是碰撞检测。对于常规的游戏对象,可以使用引擎提供的碰撞器,对于一些大型场景,碰撞网格可以由建模器提供。

使用碰撞器的一个特点是物体一般不会穿透,就像我们走在路上不小心和路人发生碰撞,或者玩一些刺激的赛车游戏,两辆车发生碰撞,这就是我们碰撞检测起作用的原因。而要想有碰撞,必须具备三个条件!

1:两个碰撞的物体必须有一个碰撞体,也就是对撞机,2:一个物体必须有刚体,3:两个物体需要相对运动。

只要满足以上条件,灵活运用代码就能做出想要的效果。

在上面,我们介绍了什么是碰撞器,碰撞的条件,以及一些使用的场景。接下来,我们来看看触发器是什么!生活中有很多触发的例子。假设我们进入一些门,当我们踏入一定范围,门就会自动打开。这其实是现实生活中触发器的例子,游戏中依然如此。比如下图,人走路回家,会自动恢复血量,其实就是在用触发器。

触发器与碰撞器相同,如下图所示:

唯一的区别是是否选中了“是否触发”。勾选之后,就是一个触发器。触发器可以穿透,但对撞机不能。

以上是对对撞机和触发器的简单介绍。关于Unity开发的更多问题,可以看这个视频教程:网页链接。希望我的回答能帮到你。