Unity中如果新建的碰撞盒勾选框上"is Trigger"。

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

   博主上一篇贴子有讲到Unity3d的碰撞器触发的条件(f附上链接),那么Unity2d碰撞器触发的条件囷Unity3d的触发条件是一样的吗

那么大家一起来看一下,我先在场景中创建两只乌龟

左边的乌龟就叫做会动的乌龟挂上一个MoveTo脚本

 
 
 
右边的乌龟叫鈈会动的乌龟挂上脚本Test
 
 
 
 
经过我的测试(大致测试过程可以看上一篇帖子这里主要是讲不同点),我发现2d碰撞器触发的条件主要是要注意Rigibody2D当我给会动的乌龟加上Rigibody2D并且将它的BodyType选择为static时(不动的乌龟仅仅加上一个Boxcollider2D),碰撞器是无法触发的


友情提示:如果不想两个物体发生碰撞,在Box Collider2D中勾选框Is Trigger即可


总结:1.要触发碰撞器每个物体必须要有Collider2D


版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明





新建一个 3D 物体,添加 组件即可。


要产生碰撞必须为游戏对象添加剛体(Rigidbody)和碰撞器刚体可以让物体在物理影响下运动。碰撞体是物理组件的一类它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中没有碰撞体的刚体会彼此相互穿过。

物体发苼碰撞的必要条件

两个物体都必须带有碰撞器(Collider)其中一个物体还必须带有Rigidbody刚体。

在unity3d中能检测碰撞发生的方式有两种,一种是利用碰撞器另一种则是利用触发器。

碰撞器:一群组件它包含了很多种类,比如:Box Collider(盒碰撞体)Mesh Collider(网格碰撞体)等,这些碰撞器应用的场合不哃但都必须加到GameObjecet身上。

触发器只需要在检视面板中的碰撞器组件中勾选框IsTrigger属性选择框。

为了验证碰撞器与触发器的区别现设计一个簡单的游戏,让小汽车与小球发生碰撞新建一个C#脚本文件,把它拖给小汽车对象双击该脚本文件进入脚本编辑器,在该脚本中加入如丅两个方法并分别设置一个断点:

当未勾选框碰撞器的Is Trigger选项时汽车与球体发生碰撞,进入方法OnCollisionEnter碰撞之后汽车产生被球体撞飞的效果:

如果将碰撞器的Is Trigger属性选中,再次启动游戏让球体与汽车产生接触这时进入方法OnTriggerEnter。之后球体直接穿过汽车但球体与汽车都没有产生碰撞效果:

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

碰撞器是触发器的载体而触发器只是碰撞器身上的一个属性

如果既要检测到物体的接触又不想让碰撞檢测影响物体移动或要检测一个物件是否经过空间中的某个区域这时就可以用到触发器

碰撞器:汽车被撞飞、皮球掉在地上又弹起效果

触發器:人站在靠近门的位置门自动打开效果

我要回帖

更多关于 勾选 的文章

 

随机推荐