【摘要】:在Unity3D 中,检测碰撞发生的方式有两种,一种是利用碰撞体,另一种则是利用触发器。触发器用来触发事件,在很多游戏引擎或工具中都有触发器,如当一个角色走到门口时,播放一段动画等。触发器的工作原理与碰撞器的工作原理相似,只是没有阻挡作用。触发器是一个区域,该区域的形状类型与碰撞器区域的形状类型是相同的。
在Unity3D 中,检测碰撞发生的方式有两种,一种是利用碰撞体,另一种则是利用触发器(Trigger)。触发器用来触发事件,在很多游戏引擎或工具中都有触发器,如当一个角色走到门口时,播放一段动画等。触发器的工作原理与碰撞器的工作原理相似,只是没有阻挡作用。触发器是一个区域,该区域的形状类型与碰撞器区域的形状类型是相同的。把某个区域设置成触发器区域很简单,只要为该区域添加一个碰撞器,并在碰撞器面板上把Is Trigger复选框勾选上即可。
使用触发器的关键在于掌握触发器的三个基于事件触发的函数,需要在脚本里实现下面几个方法(同样也是触发的时候Unity自动执行),碰到的物体会通过collider参数传递过来。
下面举例来检测触发器的发生
(1)打开工程ColliderDemo,打开场景Collider,为场景中创建一个Cylinder,给Cylinder添加触发器,因为圆柱体自带Capsule Collider胶囊碰撞器,只需将Is Trigger的选项打勾即可,如图6-12 所示。
图6-12 触发器组件
(www.xing528.com)
图6-13 发生触碰前
图6-14 发生触碰后
(2)修改脚本“ColliderTest”,挂载给Cube,实现通过键盘控制Cube 的移动,当Cube碰撞到Cylinder时,Cylinder消失。在“Collider Test”脚本中添加如下代码:
(3)运行程序,发现当立方体靠近圆柱体的时候,圆柱体立即消失,运行效果如图6-13和图6-14 所示。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。